When doing a GetRecords query against the CSW endpoint with DirectDownload enabled, I get this exception:
$ curl "http://localhost:8080/geoserver/csw?service=CSW&version=2.0.2&request=GetRecords&typeNames=gmd:MD_Metadata&resultType=results&elementSetName=full&outputSchema=http://www.isotc211.org/2005/gmd&startPosition=1"
<ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/ows http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd">
<ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.NullPointerException</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
and this backtrace:
java.lang.NullPointerException
at org.geotools.gce.imagemosaic.ImageMosaicReader.checkUnspecifiedCoverage(ImageMosaicReader.java:1066)
at org.geotools.gce.imagemosaic.ImageMosaicReader.getInfo(ImageMosaicReader.java:1448)
at org.geoserver.catalog.CoverageDimensionCustomizerReader.getInfo(CoverageDimensionCustomizerReader.java:226)
at org.geoserver.csw.DownloadLinkHandler.linksFromCoverage(DownloadLinkHandler.java:245)
at org.geoserver.csw.DownloadLinkHandler.generateDownloadLinks(DownloadLinkHandler.java:222)
at org.geoserver.csw.store.internal.RecordCustomizer.customizeFeature(RecordCustomizer.java:60)
at org.geoserver.csw.store.internal.CatalogStoreFeatureIterator.convertToFeature(CatalogStoreFeatureIterator.java:261)
at org.geoserver.csw.store.internal.CatalogStoreFeatureIterator.next(CatalogStoreFeatureIterator.java:171)
at org.geoserver.csw.store.internal.CatalogStoreFeatureIterator.next(CatalogStoreFeatureIterator.java:50)
at org.geotools.feature.collection.DelegateFeatureIterator.next(DelegateFeatureIterator.java:71)
at org.geoserver.csw.feature.AbstractFeatureCollection.size(AbstractFeatureCollection.java:348)
at org.geoserver.csw.store.AbstractCatalogStore.getRecordsCount(AbstractCatalogStore.java:145)
at org.geoserver.csw.GetRecords.run(GetRecords.java:105)
at org.geoserver.csw.DefaultWebCatalogService.getRecords(DefaultWebCatalogService.java:83)
(there is much more but hopefully this is enough).
The problem appears to be in the ImageMosaic (PK50095) in the standard release data samples, where it hits this code in DownloadLinkHandler.java:
protected CloseableIterator<String> linksFromCoverage(String baseURL, CoverageInfo coverageInfo) {
GridCoverage2DReader reader;
try {
reader = (GridCoverage2DReader) coverageInfo.getGridCoverageReader(null,
GeoTools.getDefaultHints());
ResourceInfo resourceInfo = reader.getInfo(coverageInfo.getNativeCoverageName());
The problem is that the native coverage name is null for that sample, which ends up dereferenced as shown in the backtrace.
|