Language: Java
Label: safe
CWE: CWE-89 \u2014 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.

Code:
    public void testForIdsSort3DebugEnabled() {
        String expected =
                "SELECT id FROM"
                        + "\n    (SELECT oid, id FROM object WHERE type_id IN (:types) /* org.geoserver.catalog.WorkspaceInfo */"
                        + "\n) object"
                        + "\n  LEFT JOIN"
                        + "\n    (SELECT oid, value prop0 FROM"
                        + "\n      object_property WHERE property_type IN (:sortProperty0)) subSelect0 /* foo ASC */"
                        + "\n  ON object.oid = subSelect0.oid"
                        + "\n  LEFT JOIN"
                        + "\n    (SELECT oid, value prop1 FROM"
                        + "\n      object_property WHERE property_type IN (:sortProperty1)) subSelect1 /* bar DESC */"
                        + "\n  ON object.oid = subSelect1.oid"
                        + "\n  LEFT JOIN"
                        + "\n    (SELECT oid, value prop2 FROM"
                        + "\n      object_property WHERE property_type IN (:sortProperty2)) subSelect2 /* baz ASC */"
                        + "\n  ON object.oid = subSelect2.oid"
                        + "\n  ORDER BY prop0 ASC, prop1 DESC, prop2 ASC";
        verifyForIds(
                expected,
                true,
                Predicates.acceptAll(),
                Predicates.asc("foo"),
                Predicates.desc("bar"),
                Predicates.asc("baz"));
    }