On Fri, Oct 3, 2014 at 2:24 PM, Shawn Heisey <apa...@elyograg.org> wrote:
> Can you give us the entire stacktrace, with complete details from any
> "caused by" sections?  Also, is this 4.8.0 or 4.8.1?
>

Thanks Shawn, this is SOLR 4.8.1 and here is the full traceback from the log:

95191 [Thread-21] INFO
org.apache.solr.update.processor.LogUpdateProcessor  – [products]
webapp=/products path=/dataimport-from-denorm
params={id=2148732&optimize=false&clean=false&indent=true&commit=true&verbose=false&command=full-import&debug=false&wt=json}
status=0 QTime=32 {} 0 32
95199 [Thread-21] ERROR
org.apache.solr.handler.dataimport.DataImporter  – Full Import
failed:java.lang.RuntimeException: java.lang.RuntimeException:
org.apache.solr.handler.dataimport.DataImportHandlerException:
java.lang.ClassCastException: java.lang.Integer cannot be cast to
java.lang.Long
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:278)
at 
org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:483)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:464)
Caused by: java.lang.RuntimeException:
org.apache.solr.handler.dataimport.DataImportHandlerException:
java.lang.ClassCastException: java.lang.Integer cannot be cast to
java.lang.Long
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:418)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:331)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:239)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException:
java.lang.ClassCastException: java.lang.Integer cannot be cast to
java.lang.Long
at 
org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:63)
at 
org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:246)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:477)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:503)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:503)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:503)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
... 5 more
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be
cast to java.lang.Long
at java.lang.Long.compareTo(Long.java:50)
at java.util.TreeMap.getEntry(TreeMap.java:346)
at java.util.TreeMap.get(TreeMap.java:273)
at 
org.apache.solr.handler.dataimport.SortedMapBackedCache.iterator(SortedMapBackedCache.java:147)
at 
org.apache.solr.handler.dataimport.DIHCacheSupport.getIdCacheData(DIHCacheSupport.java:179)
at 
org.apache.solr.handler.dataimport.DIHCacheSupport.getCacheData(DIHCacheSupport.java:145)
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)
... 10 more

95199 [Thread-21] INFO  org.apache.solr.update.UpdateHandler  – start rollback{}

I've tracked it down to a single entity now that selects some content
out of the database and then looks up other fields using that data
from sub-entities that have SortedMapBackedCache caching in use, but
I'm still not sure how to fix it.

Eg, the original entity selects out "country_id", which is then used
by this entity:

    <entity dataSource="products" name="country_lookup" query="
      SELECT
        lk_country.id AS xid,
        IF(LENGTH(english), CAST(english AS CHAR), description) AS country
      FROM lk_country
      INNER JOIN nl_strings ON lk_country.description_sid=nl_strings.id"
      cacheKey="xid"
      cacheLookup="product.country_id"
      cacheImpl="SortedMapBackedCache">
      <field column="country" name="country"/>
    </entity>

I tried converting the selected data to SIGNED INTEGER, eg
"CONVERT(country_id, SIGNED INTEGER) AS country_id", but this did not
have the desired effect.

The source database is mysql, the source column for "country_id" is
"`country_id` smallint(6) NOT NULL default '0'".

Again, I'm not 100% sure that it is even the "country" field that
causes this, there are several SortedMapBackedCache sub-entities (but
they are all analogous to this one).

Thanks in advance

Tom

Reply via email to