From d6eca0717034f05a231cdd44000d560f6310286a Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 12 Mar 2024 13:37:38 -0600 Subject: [PATCH] Ensure location is not null so aggregation cache is used --- .../nc2/ft2/coverage/CoverageDatasetFactory.java | 15 ++++++++++++++- .../internal/ncml/s3/S3AggScanFeatureType.java | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cdm/core/src/main/java/ucar/nc2/ft2/coverage/CoverageDatasetFactory.java b/cdm/core/src/main/java/ucar/nc2/ft2/coverage/CoverageDatasetFactory.java index 32835fcb59..83e31b374f 100644 --- a/cdm/core/src/main/java/ucar/nc2/ft2/coverage/CoverageDatasetFactory.java +++ b/cdm/core/src/main/java/ucar/nc2/ft2/coverage/CoverageDatasetFactory.java @@ -126,8 +126,21 @@ public static Optional openGrib(String endpoint) { } + /** + * @deprecated Use openNcmlString(String, String) + */ + @Deprecated public static Optional openNcmlString(String ncml) throws IOException { - NetcdfDataset ncd = NetcdfDatasets.openNcmlDataset(new StringReader(ncml), null, null); + return openNcmlString(ncml, null); + } + + /** + * @param ncml the NcML as a String + * @param location the URL location string of the NcML document, + * or may be just a unique name for caching purposes (if null, aggregation cache will not be used). + */ + public static Optional openNcmlString(String ncml, String location) throws IOException { + NetcdfDataset ncd = NetcdfDatasets.openNcmlDataset(new StringReader(ncml), location, null); DtCoverageDataset gds = new DtCoverageDataset(ncd); if (!gds.getGrids().isEmpty()) { diff --git a/cdm/s3/src/test/java/ucar/nc2/internal/ncml/s3/S3AggScanFeatureType.java b/cdm/s3/src/test/java/ucar/nc2/internal/ncml/s3/S3AggScanFeatureType.java index 4301623f21..fc4bbf2705 100644 --- a/cdm/s3/src/test/java/ucar/nc2/internal/ncml/s3/S3AggScanFeatureType.java +++ b/cdm/s3/src/test/java/ucar/nc2/internal/ncml/s3/S3AggScanFeatureType.java @@ -96,7 +96,7 @@ public void testAggNewOpenAsCoverage() throws IOException, InvalidRangeException ncml = ncmlStream.collect(Collectors.joining()); } assertThat(ncml).isNotNull(); - Optional fdc = CoverageDatasetFactory.openNcmlString(ncml); + Optional fdc = CoverageDatasetFactory.openNcmlString(ncml, null); assertThat(fdc.isPresent()).isTrue(); List cc = fdc.get().getCoverageCollections(); checkCoverages(cc);