Skip to content

Commit

Permalink
[GEOT-5783] ImageMosaic silently ignores invalid sort attributes in t…
Browse files Browse the repository at this point in the history
…he SORTING parameters
  • Loading branch information
aaime committed Jul 14, 2017
1 parent 0ff980e commit 24fa2e7
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
Expand Up @@ -25,6 +25,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;

import org.apache.commons.io.FilenameUtils;
import org.geotools.coverage.grid.io.DimensionDescriptor;
Expand All @@ -47,6 +48,7 @@
import org.geotools.util.DateRange;
import org.geotools.util.NumberRange;
import org.geotools.util.Range;
import org.geotools.util.logging.Logging;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory2;
Expand All @@ -58,6 +60,8 @@
* and world file for TIFFs.
*/
public class ImageMosaicFileResourceInfo extends DefaultResourceInfo implements FileResourceInfo {

static final Logger LOGGER = Logging.getLogger(ImageMosaicFileResourceInfo.class);

private final static String PRJ = ".PRJ";

Expand Down Expand Up @@ -419,6 +423,8 @@ public CloseableIterator<FileGroup> getFiles(Query query) {
.supportsSorting(sb);
if (isSortBySupported) {
updatedQuery.setSortBy(sb);
} else {
LOGGER.severe("Sorting parameter ignored, underlying datastore cannot sort on " + Arrays.toString(sb));
}
updatedQuery.setTypeName(typeName);

Expand Down
Expand Up @@ -30,6 +30,7 @@
import java.lang.reflect.Constructor;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -1030,7 +1031,10 @@ private void handleSortByClause(final Query query) throws IOException {
this.sortBy = new SortBy[] {sort};
if (catalog.getQueryCapabilities(rasterManager.getTypeName()).supportsSorting(sortBy)) {
query.setSortBy(sortBy);
}
} else {
LOGGER.severe("Sorting parameter ignored, underlying datastore cannot sort on "
+ Arrays.toString(sortBy));
}
}
}
}
Expand Down
Expand Up @@ -1305,6 +1305,9 @@ private Set extractDomain(final String attribute, final String secondAttribute,
// Checking whether it supports sorting capabilities
if (granuleCatalog.getQueryCapabilities(typeName).supportsSorting(sb)) {
query.setSortBy(sb);
} else {
LOGGER.severe("Sorting parameter ignored, underlying datastore cannot sort on "
+ Arrays.toString(sb));
}

final FeatureCalc visitor = domainType == DomainType.TIME_RANGE
Expand Down

0 comments on commit 24fa2e7

Please sign in to comment.