diff --git a/source/java/org/alfresco/rest/framework/tools/RecognizedParamsExtractor.java b/source/java/org/alfresco/rest/framework/tools/RecognizedParamsExtractor.java index 1527b32d22..3aa556c4c4 100644 --- a/source/java/org/alfresco/rest/framework/tools/RecognizedParamsExtractor.java +++ b/source/java/org/alfresco/rest/framework/tools/RecognizedParamsExtractor.java @@ -313,13 +313,18 @@ public interface RecognizedParamsExtractor } else { - rpeLogger().debug("Invalid sort order definition (" + sortDef + "). Valid values are " + SortColumn.ASCENDING + " or " + rpeLogger().debug("Invalid sort order direction (" + sortDef + "). Valid values are " + SortColumn.ASCENDING + " or " + SortColumn.DESCENDING + "."); - throw new InvalidArgumentException("Unknown sort order direction: "+sortDef+" expected: asc or desc"); + throw new InvalidArgumentException("Unknown sort order direction '"+sortDef+"', expected asc or desc"); } } sortedColumns.add(new SortColumn(columnName, SortColumn.ASCENDING.equals(sortOrder))); } + else + { + rpeLogger().debug("Invalid sort order definition (" + token + ")"); + throw new InvalidArgumentException("Unknown sort order definition '" + token + "', expected 'field1,field2' or 'field1 asc,field2 desc' or similar"); + } // filteredProperties.add(); } // logger.debug("Filtering using the following properties: " + filteredProperties); diff --git a/source/test-java/org/alfresco/rest/framework/tools/RecognizedParamsExtractorTest.java b/source/test-java/org/alfresco/rest/framework/tools/RecognizedParamsExtractorTest.java index d52139cb18..e0a409928b 100644 --- a/source/test-java/org/alfresco/rest/framework/tools/RecognizedParamsExtractorTest.java +++ b/source/test-java/org/alfresco/rest/framework/tools/RecognizedParamsExtractorTest.java @@ -148,22 +148,32 @@ public class RecognizedParamsExtractorTest implements RecognizedParamsExtractor assertEquals("name", theSort.get(1).column); assertTrue(theSort.get(1).asc); - try - { - getSort("age asc, name des"); // nvalid, should be desc - fail("Should throw an InvalidSelectException"); - } - catch (InvalidArgumentException error) - { - // this is correct - } - - theSort = getSort("name asc,"); // trailing comma is ignored + theSort = getSort("name asc,"); // ok for now, trailing comma is ignored assertNotNull(theSort); assertTrue("Must have a value for column: NAME", !theSort.isEmpty()); assertTrue(theSort.size() == 1); assertEquals("name", theSort.get(0).column); assertTrue(theSort.get(0).asc); + + try + { + getSort("age asc, name des"); // invalid, should be desc + fail("Should throw an InvalidArgumentException"); + } + catch (InvalidArgumentException error) + { + // this is correct + } + + try + { + getSort("age asc name"); // invalid, missing comma + fail("Should throw an InvalidArgumentException"); + } + catch (InvalidArgumentException error) + { + // this is correct + } } @Test