Hi,

 

as far as I remember, there was some race with Java 7 and the initialization of 
timezone data, see also this problem happeing to eclipse users:

http://www.eclipse.org/forums/index.php?t=msg 
<http://www.eclipse.org/forums/index.php?t=msg&goto=488277&;> &goto=488277&

http://www.java-forums.org/eclipse/33414-java-lang-noclassdeffounderror-when-i-run-my-first-project.html

 

The NoClassDefFoundError happens, because another class related to timezone 
initialization was not able to initialize before (unfortunately the stack trace 
is incomplete). Theoretically, this problem should be solved in later ICU 
versions, but I am not sure, maybe the tzdata file of Debian shipped with JDK 
is incorrect.

 

Can you try to start Solr with this system property on Java command line?

-Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=ICU

 

If this helps, then the timezone database of your Debian JRE is broken.

 

Uwe

 

-----

Uwe Schindler

H.-H.-Meier-Allee 63, D-28213 Bremen

 <http://www.thetaphi.de/> http://www.thetaphi.de

eMail: [email protected]

 

From: Charlie Orford [mailto:[email protected]] 
Sent: Thursday, October 09, 2014 2:03 PM
To: [email protected]
Subject: Re: Moving to Java 7 on debian breaks ICU Normalizer2 on Solr 4.7.2 
and Solr 4.10.1

 

Hi Uwe

I wondered about that but I don't think so. We use the Solr tar file for Solr 
(i.e. not a debian provided package) and I've chcked the dependencies for the 
debian java 7 package and can't spot anything ICU related (see here: 
https://packages.debian.org/wheezy/openjdk-7-jre-headless).

Debian to provide a "libicu4j-4.4-java" package but that isn't installed on our 
system.

Charlie

On 09/10/2014 12:59, Uwe Schindler wrote:

Hi,

 

Could it be that the Debian Java 7 package or the Debian Solr package somehow 
injects a different version of ICU by a dependency? Those errors generally 
happen if you run into JAR hell (different versions of the same package in 
classpath).

 

Uwe

-----

Uwe Schindler

H.-H.-Meier-Allee 63, D-28213 Bremen

http://www.thetaphi.de <http://www.thetaphi.de/> 

eMail: [email protected]

 

From: Charlie Orford [mailto:[email protected]] 
Sent: Thursday, October 09, 2014 1:46 PM
To: [email protected]
Subject: Moving to Java 7 on debian breaks ICU Normalizer2 on Solr 4.7.2 and 
Solr 4.10.1

 

Hi List

Posting here on the suggestion of steffkes in IRC.

We currently run a multicore Solr 4.7.2 installation on debian wheezy using the 
debian provided "default-headless-jre" package for java which is JDK 6 based. 
We also use some ICU filters in our schema.xml files so we have icu4j-52.1.jar, 
lucene-analyzers-common-4.7.2.jar, lucene-analyzers-icu-4.7.2.jar, 
lucene-analyzers-smartcn-4.7.2.jar, lucene-analyzers-stempel-4.7.2.jar and 
solr-analysis-extras-4.7.2.jar in our solr-home/lib folder.

We want to move to Solr 4.10.1 which needs Java 7.

Before upgrading Solr, we first uninstalled the "default-jre-headless" package 
and then installed "openjdk-7-jre-headless" so the Java 7 dependency was met.

However, doing this causes Solr 4.7.2 to throw a core error on start:

"ERROR org.apache.solr.core.SolrCore Error loading 
core:java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: 
com/ibm/icu/text/Normalizer2"

If we uninstall the "openjdk-7-jre-headless" package and re-install the 
"default-headless-jre" package Solr 4.7.2 starts fine.

We've also tested a clean install of Solr 4.10.1 on a different machine with 
the debian "openjdk-7-jre-headless" package installed (and the 4.10.1 versions 
of the relevant lucene/solr ICU jar libs) and encounter the same 
NoClassDefFoundError: com/ibm/icu/text/Normalizer2 error whenever we try to 
create a core that uses the solr.ICUNormalizer2FilterFactory in its schema.

Unfortunately, we aren't Java people and only use it for Solr so we're not sure 
how to debug this. Is the problem with the debian package? Is the problem with 
icu4j-52.1.jar? Or is the problem something else entirely?

Any insight appreciated!

Charlie




 

Reply via email to