Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-2445

Oracle: Problem with ExpressionFactory.notInExp()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.2, 4.0.RC1, 4.1.M2
    • 3.1.4, 4.0, 4.1.B1
    • Core Library
    • None

    Description

      When collection in notInExp() contains more than 1000 items, the ExpressionException is thrown:

      org.apache.cayenne.exp.ExpressionException: [v.3.1.2 Nov 13 2017 07:52:36] Or: invalid parent - Negate
      at org.apache.cayenne.exp.parser.AggregateConditionNode.jjtSetParent(AggregateConditionNode.java:80)
      at org.apache.cayenne.exp.parser.SimpleNode.connectChildren(SimpleNode.java:324)
      ...

      Code to reproduce the problem

      SelectQuery query = new SelectQuery(Artist.class);
      List<Integer> excluded = new ArrayList<Integer>();
      for (int i = 0; i < 1001; ++i) {
       excluded.add(i);
      }
      query.andQualifier(ExpressionFactory.notInExp(Artist.ID_PK_COLUMN, excluded));
      getContext().performQuery(query); 

       

      Attachments

        1. stacktrace.txt
          3 kB
          Vladimir Zhilin

        Issue Links

          Activity

            People

              ntimofeev Nikita Timofeev
              vzhilin Vladimir Zhilin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: