Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7483

Queries: transformers are not executed when paging the result

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 2.3
    • 2.5
    • cache
    • None

    Description

      It seems that transformers are not executed during pagination which leads to ClassCastExceptions because the result list also contains instances of GridCacheQueryResponseEntry.

      To reproduce open GridCacheQueryTransformerSelfTest.testGetKeys() and set a page size of 1 so that

      List<Integer> keys = cache.query(new ScanQuery<Integer, String>(), transformer).getAll();
      

      becomes to

      List<Integer> keys = cache.query(new ScanQuery<Integer, String>().setPageSize(1), transformer).getAll();
      

      this leads to following stack trace:

      java.lang.ClassCastException: org.apache.ignite.internal.processors.cache.query.GridCacheQueryResponseEntry cannot be cast to java.lang.Comparable
      
      	at java.util.ComparableTimSort.binarySort(ComparableTimSort.java:249)
      	at java.util.ComparableTimSort.sort(ComparableTimSort.java:207)
      	at java.util.Arrays.sort(Arrays.java:1312)
      	at java.util.Arrays.sort(Arrays.java:1506)
      	at java.util.ArrayList.sort(ArrayList.java:1454)
      	at java.util.Collections.sort(Collections.java:141)
      	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryTransformerSelfTest.testGetKeys(GridCacheQueryTransformerSelfTest.java:102)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at junit.framework.TestCase.runTest(TestCase.java:176)
      	at org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:2001)
      	at org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:133)
      	at org.apache.ignite.testframework.junits.GridAbstractTest$5.run(GridAbstractTest.java:1916)
      	at java.lang.Thread.run(Thread.java:745)
      

      Attachments

        Issue Links

          Activity

            People

              slava.koptilin Vyacheslav Koptilin
              SaschaHofer Sascha Hofer
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: