diff --git a/api/src/org/labkey/filters/ContentSecurityPolicyFilter.java b/api/src/org/labkey/filters/ContentSecurityPolicyFilter.java index d55438013ea..ae58e441059 100644 --- a/api/src/org/labkey/filters/ContentSecurityPolicyFilter.java +++ b/api/src/org/labkey/filters/ContentSecurityPolicyFilter.java @@ -92,10 +92,10 @@ public String getHeaderName() static { // ReactJS hot reload uses localhost port 3001. If in dev mode, allow the browser to access that port for fonts - // and connections. + // and connections. Also allow webpack: protocol for source map loading by some external packages. if (AppProps.getInstance().isDevMode()) { - registerAllowedSources("reactjs.hot.reload", Directive.Connection, "localhost:3001 ws://localhost:3001"); + registerAllowedSources("reactjs.hot.reload", Directive.Connection, "localhost:3001 ws://localhost:3001 webpack:"); registerAllowedSources("reactjs.hot.reload", Directive.Font, "localhost:3001"); } } diff --git a/assay/src/org/labkey/assay/plate/AssayPlateMetadataServiceImpl.java b/assay/src/org/labkey/assay/plate/AssayPlateMetadataServiceImpl.java index ea2c98c3414..b4d7635f972 100644 --- a/assay/src/org/labkey/assay/plate/AssayPlateMetadataServiceImpl.java +++ b/assay/src/org/labkey/assay/plate/AssayPlateMetadataServiceImpl.java @@ -96,7 +96,6 @@ import org.labkey.api.util.logging.LogHelper; import org.labkey.api.view.ActionURL; import org.labkey.assay.TSVProtocolSchema; -import org.labkey.assay.plate.data.WellData; import org.labkey.assay.plate.model.WellBean; import org.labkey.assay.plate.query.PlateSchema; import org.labkey.assay.plate.query.PlateTable; @@ -706,13 +705,13 @@ public PlateGridInfo(PlateUtils.GridInfo info, PlateSet plateSet, Set me private @Nullable String getPrefixedValue(String annotation, String prefix) { - if (annotation != null && annotation.trim().toLowerCase().startsWith(prefix)) + if (annotation != null) { - String[] parts = annotation.split(":"); - if (parts.length > 1) + // Issue 52782: measure name may contain a colon + String[] parts = annotation.split(":", 2); + if (parts.length == 2 && parts[0].trim().equalsIgnoreCase(prefix)) { - // Issue 52782: measure name may contain a colon, so we need to join the rest of the parts - return StringUtils.join(parts, ":", 1, parts.length).trim(); + return parts[1].trim(); } } return null;