mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

boli
01.14.2009 5ef5b7ebec21ac99a61466cf5861b7d301bc7da0
opends/src/server/org/opends/server/controls/ServerSideSortRequestControl.java
@@ -124,37 +124,28 @@
          OrderingMatchingRule orderingRule = null;
          boolean ascending = true;
          while(reader.hasNextElement())
          if(reader.hasNextElement() &&
              reader.peekType() == TYPE_ORDERING_RULE_ID)
          {
            switch (reader.peekType())
            String orderingRuleID =
                toLowerCase(reader.readOctetStringAsString());
            orderingRule =
                DirectoryServer.getOrderingMatchingRule(orderingRuleID);
            if (orderingRule == null)
            {
              case TYPE_ORDERING_RULE_ID:
                String orderingRuleID =
                               toLowerCase(reader.readOctetStringAsString());
                orderingRule =
                    DirectoryServer.getOrderingMatchingRule(orderingRuleID);
                if (orderingRule == null)
                {
                  Message message =
                      INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE.
                          get(orderingRuleID);
                  throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                      message);
                }
                break;
              case TYPE_REVERSE_ORDER:
                ascending = ! reader.readBoolean();
                break;
              default:
                Message message = INFO_SORTREQ_CONTROL_INVALID_SEQ_ELEMENT_TYPE.
                    get(byteToHex(reader.peekType()));
                throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                    message);
              Message message =
                  INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE.
                      get(orderingRuleID);
              throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                  message);
            }
          }
          if(reader.hasNextElement() &&
              reader.peekType() == TYPE_REVERSE_ORDER)
          {
            ascending = ! reader.readBoolean();
          }
          reader.readEndSequence();
          if ((orderingRule == null) &&
              (attrType.getOrderingMatchingRule() == null))
@@ -167,6 +158,7 @@
          sortKeys.add(new SortKey(attrType, ascending, orderingRule));
        }
        reader.readEndSequence();
        return new ServerSideSortRequestControl(isCritical,
            new SortOrder(sortKeys.toArray(new SortKey[0])));