Hi Uwe,
Thanks for the leads.
Unfortunately, adding
-Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=ICU does not have any
effect. Solr throws the same NoClassDefFoundError.
Is there anyway I can get a complete stack trace?
Charlie
On 09/10/2014 14:44, Uwe Schindler wrote:
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&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] <mailto:[email protected]>
*From:*Charlie Orford [mailto:[email protected]]
*Sent:* Thursday, October 09, 2014 1:46 PM
*To:* [email protected] <mailto:[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