Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-5597

ClassCastException occurs when importing CLOB-fields using SqlEntityProcessor and SortedMapBackedCache

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • 4.6
    • None
    • None

    Description

      Using the SqlEntityProcessor with the SortedMapBackedCache as cache implementation, gives the following ClassCastException when trying to import a field of type oracle.sql.CLOB.

      2014-01-02 09:32:19,143 [ERROR] [Thread-54] Exception in entity : <field-name>:java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to java.lang.Comparable
      at java.util.TreeMap.getEntry(TreeMap.java:325)
      at java.util.TreeMap.get(TreeMap.java:255)
      at org.apache.solr.handler.dataimport.SortedMapBackedCache.add(SortedMapBackedCache.java:61)
      at org.apache.solr.handler.dataimport.DIHCacheSupport.populateCache(DIHCacheSupport.java:124)
      at org.apache.solr.handler.dataimport.DIHCacheSupport.getSimpleCacheData(DIHCacheSupport.java:199)
      at org.apache.solr.handler.dataimport.DIHCacheSupport.getCacheData(DIHCacheSupport.java:147)
      at org.apache.solr.handler.dataimport.EntityProcessorBase.getNext(EntityProcessorBase.java:129)
      at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:75)
      at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243)
      at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:469)
      at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:495)
      at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:408)
      at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:323)
      at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)
      at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
      at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)
      at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:457)
      – org.apache.solr.handler.dataimport.EntityProcessorWrapper

      It seems that this occurs because the SortedMapBackedCache uses a java.util.TreeMap as the underlying cache, and TreeMap requires that all elements implements the java.lang.Comparable interface. However oracle.sql.CLOB does not implement Comparable and the import fails when the TreeMap implementation tries to cast the element to a Comparable (this occurs on line 325 in TreeMap.java - java version 1.6.0_33).

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              henriwi Henrik Wingerei
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: