Thanks, that pointed me in the right direction! The problem was an ancient ICU 
library in the distributed code.

-Tod

On Dec 15, 2017, at 5:15 PM, Erick Erickson 
<erickerick...@gmail.com<mailto:erickerick...@gmail.com>> wrote:

My guess is this isn't a Solr issue at all; you are somehow using an old Java.

RBBIDataWrapper is from

com.ibm.icu.text;

I saw on a quick Google that this was cured by re-installing Eclipse,
but that was from 5 years ago.

You say your Java and IDE skills are a bit rusty, maybe you haven't
updated your Java JDK or Eclipse in a while? I don't know if Eclipse
somehow has its own Java (I haven't used Eclipse for quite a while).

I take it this runs outside Eclipse OK? (well, with problems otherwise
you wouldn't be stepping through it.....)

Best,
Erick

On Fri, Dec 15, 2017 at 1:16 PM, Tod Olson 
<t...@uchicago.edu<mailto:t...@uchicago.edu>> wrote:
Hi everyone,

I need to do some step-wise debugging on a custom RequestHandler. I'm trying to 
spin up a core in a Junit test, with the idea of running it inside of Eclipse 
for debugging. (If there's an easier way, I'd like to see a walk through!) 
Problem is the core fails to spin up with:

java.io.IOException: Break Iterator Rule Data Magic Number Incorrect, or 
unsupported data version

Here's the code, just trying to load (cribbed and adapted from 
https://stackoverflow.com/questions/45506381/how-to-debug-solr-plugin):

public class BrowseHandlerTest
{
   private static CoreContainer container;
   private static SolrCore core;

   private static final Logger logger = Logger.getGlobal();



   @BeforeClass
   public static void prepareClass() throws Exception
   {
       String solrHomeProp = "solr.solr.home";
       System.out.println(solrHomeProp + "= " + 
System.getProperty(solrHomeProp));
       // create the core container from the solr.solr.home system property
       container = new CoreContainer();
       container.load();
       core = container.getCore("biblio");
       
logger.info<http://logger.info/><http://logger.info<http://logger.info/>>("Solr 
core loaded!");
   }

   @AfterClass
   public static void cleanUpClass()
   {
       core.close();
       container.shutdown();
       
logger.info<http://logger.info/><http://logger.info<http://logger.info/>>("Solr 
core shut down!");
   }
}

The test, run through ant, fails as follows:

   [junit] solr.solr.home= /Users/tod/src/vufind/solr/vufind
   [junit] SLF4J: Defaulting to no-operation (NOP) logger implementation
   [junit] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for 
further details.
   [junit] SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
   [junit] SLF4J: Defaulting to no-operation MDCAdapter implementation.
   [junit] SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for 
further details.
   [junit] Tests run: 0, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 
1.299 sec
   [junit]
   [junit] ------------- Standard Error -----------------
   [junit] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
   [junit] SLF4J: Defaulting to no-operation (NOP) logger implementation
   [junit] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for 
further details.
   [junit] SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
   [junit] SLF4J: Defaulting to no-operation MDCAdapter implementation.
   [junit] SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for 
further details.
   [junit] ------------- ---------------- ---------------
   [junit] Testcase: org.vufind.solr.handler.tests.BrowseHandlerTest: Caused an 
ERROR
   [junit] SolrCore 'biblio' is not available due to init failure: JVM Error 
creating core [biblio]: null
   [junit] org.apache.solr.common.SolrException: SolrCore 'biblio' is not 
available due to init failure: JVM Error creating core [biblio]: null
   [junit]  at 
org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:1066)
   [junit]  at 
org.vufind.solr.handler.tests.BrowseHandlerTest.prepareClass(BrowseHandlerTest.java:45)
   [junit] Caused by: org.apache.solr.common.SolrException: JVM Error creating 
core [biblio]: null
   [junit]  at org.apache.solr.core.CoreContainer.create(CoreContainer.java:833)
   [junit]  at 
org.apache.solr.core.CoreContainer.access$000(CoreContainer.java:87)
   [junit]  at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:467)
   [junit]  at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:458)
   [junit]  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   [junit]  at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:231)
   [junit]  at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   [junit]  at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   [junit]  at java.lang.Thread.run(Thread.java:745)
   [junit] Caused by: java.lang.ExceptionInInitializerError
   [junit]  at 
org.apache.lucene.analysis.icu.segmentation.ICUTokenizerFactory.inform(ICUTokenizerFactory.java:107)
   [junit]  at 
org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:721)
   [junit]  at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:160)
   [junit]  at 
org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:56)
   [junit]  at 
org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:70)
   [junit]  at 
org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:108)
   [junit]  at 
org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:79)
   [junit]  at org.apache.solr.core.CoreContainer.create(CoreContainer.java:812)
   [junit] Caused by: java.lang.RuntimeException: java.io.IOException: Break 
Iterator Rule Data Magic Number Incorrect, or unsupported data version.
   [junit]  at 
org.apache.lucene.analysis.icu.segmentation.DefaultICUTokenizerConfig.readBreakIterator(DefaultICUTokenizerConfig.java:125)
   [junit]  at 
org.apache.lucene.analysis.icu.segmentation.DefaultICUTokenizerConfig.<clinit>(DefaultICUTokenizerConfig.java:66)
   [junit] Caused by: java.io.IOException: Break Iterator Rule Data Magic 
Number Incorrect, or unsupported data version.
   [junit]  at com.ibm.icu.text.RBBIDataWrapper.get(RBBIDataWrapper.java:193)
   [junit]  at 
com.ibm.icu.text.RuleBasedBreakIterator.getInstanceFromCompiledRules(RuleBasedBreakIterator.java:57)
   [junit]  at 
org.apache.lucene.analysis.icu.segmentation.DefaultICUTokenizerConfig.readBreakIterator(DefaultICUTokenizerConfig.java:120)
   [junit]
   [junit]
   [junit] Testcase: org.vufind.solr.handler.tests.BrowseHandlerTest: Caused an 
ERROR
   [junit] null
   [junit] java.lang.NullPointerException
   [junit]  at 
org.vufind.solr.handler.tests.BrowseHandlerTest.cleanUpClass(BrowseHandlerTest.java:52)
   [junit]
   [junit]
   [junit] Test org.vufind.solr.handler.tests.BrowseHandlerTest FAILED

This is the directory structure:

.../solr/vufind/
               authority/
                      conf/
                      core.properties
               biblio/
                      conf/
                      core.properties
                      index/
               solr.xml

The solr.solr.home property is set to the solr/vufind directory, and I need to 
load the biblio core. I don't get to dig into code very often, so my Java and 
IDE skills are a bit rusty.

Any advice is welcome, whether how to fix or an alternate approach.

Best,

-Tod

Tod Olson 
<t...@uchicago.edu<mailto:t...@uchicago.edu><mailto:t...@uchicago.edu>>
Systems Librarian
Interim Director for Integrated Library Systems
University of Chicago Library

Reply via email to