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

Oracle: Problem with ExpressionFactory.notInExp()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.2, 4.0.RC1, 4.1.M2
    • Fix Version/s: 4.0, 3.1.4, 4.1.M3
    • Component/s: Core Library
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: