PDA

View Full Version : [Java][LOL] Don't use Java 7, for anything


shinya
29-07-2011, 09:33
Benino...

http://www.lucidimagination.com/search/document/1a0d3986e48a9348/warning_index_corruption_and_crashes_in_apache_lucene_core_apache_solr_with_java_7


Subject: [WARNING] Index corruption and crashes in Apache Lucene Core / Apache Solr with Java 7
From: Uwe Schindler <uschindler@...>
Date: 2011-07-28 17:13

Hello Apache Lucene & Apache Solr users,
Hello users of other Java-based Apache projects,

Oracle released Java 7 today. Unfortunately it contains hotspot compiler
optimizations, which miscompile some loops. This can affect code of several
Apache projects. Sometimes JVMs only crash, but in several cases, results
calculated can be incorrect, leading to bugs in applications (see Hotspot
bugs 7070134 [1], 7044738 [2], 7068051 [3]).

Apache Lucene Core and Apache Solr are two Apache projects, which are
affected by these bugs, namely all versions released until today. Solr users
with the default configuration will have Java crashing with SIGSEGV as soon
as they start to index documents, as one affected part is the well-known
Porter stemmer (see LUCENE-3335 [4]). Other loops in Lucene may be
miscompiled, too, leading to index corruption (especially on Lucene trunk
with pulsing codec; other loops may be affected, too - LUCENE-3346 [5]).

These problems were detected only 5 days before the official Java 7 release,
so Oracle had no time to fix those bugs, affecting also many more
applications. In response to our questions, they proposed to include the
fixes into service release u2 (eventually into service release u1, see [6]).
This means you cannot use Apache Lucene/Solr with Java 7 releases before
Update 2! If you do, please don't open bug reports, it is not the
committers' fault! At least disable loop optimizations using the
-XX:-UseLoopPredicate JVM option to not risk index corruptions.

Please note: Also Java 6 users are affected, if they use one of those JVM
options, which are not enabled by default: -XX:+OptimizeStringConcat or
-XX:+AggressiveOpts

It is strongly recommended not to use any hotspot optimization switches in
any Java version without extensive testing!

In case you upgrade to Java 7, remember that you may have to reindex, as the
unicode version shipped with Java 7 changed and tokenization behaves
differently (e.g. lowercasing). For more information, read
JRE_VERSION_MIGRATION.txt in your distribution package!

On behalf of the Lucene project,
Uwe

[1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7070134
[2] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7044738
[3] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7068051
[4] https://issues.apache.org/jira/browse/LUCENE-3335
[5] https://issues.apache.org/jira/browse/LUCENE-3346
[6] http://s.apache.org/StQ

-----
Uwe Schindler
uschindler@apache.org
Apache Lucene PMC Member / Committer
Bremen, Germany
http://lucene.apache.org/

banryu79
02-08-2011, 16:43
La versione lunga (e che offre un po' più di "insight" e meno "hype") della storia, a chi dovesse interessare:
http://blog.thetaphi.de/2011/07/real-story-behind-java-7-ga-bugs.html

Freaxxx
02-08-2011, 16:49
ma non credo che sia una novità, ho letto qualcosa sulla situazione di Java in Oracle ed è tutto tranne che rosea, hanno perso tutte le persone più competenti che lavoravano al progetto, al loro posto hanno messo gente a caso che viene semplicemente da aziende che fanno parte del board che approva le JSR; in pratica Java è terreno di conquista più che di sviluppo, e questa situazione va avanti già da un bel po' di tempo.
Forse a chi inizia oggi consiglierei più Python e C# che Java ad essere onesto.

starfred
02-08-2011, 17:36
Basta vedere i Bug che vengon fuori ogni giorno
http://bugs.sun.com/bugdatabase/top25_bugs.do

Hanno pure la classifica top 25...

La cosa che, a mio parere, lascia perplessi non è tanto il fatto che ci siano bug ma i tipi di bug (imbarazzanti come in questo caso) che escon fuori, dateci un'occhiata.

insane74
02-08-2011, 20:30
...
Forse a chi inizia oggi consiglierei più Python e C# che Java ad essere onesto.

considerando la sempre maggiore importanza di smartphone e tablet, e la sempre in crescita percentuale di diffusione di Android, consigliare di NON usare java non mi sembra il migliore dei consigli.
:)

Freaxxx
02-08-2011, 20:35
considerando la sempre maggiore importanza di smartphone e tablet, e la sempre in crescita percentuale di diffusione di Android, consigliare di NON usare java non mi sembra il migliore dei consigli.
:)

in realtà java su Android non è java, è una approssimazione comune, ma è più corretto dire che le applicazioni che possono girare sotto Android possono essere scritte sfruttando il linguaggio Java e le sue regole, ma di base non di può dire che quello che gira sotto Android sia Java, se conosci la piattaforma avrai sicuramente notato la moltitudine di riferimenti a "JSR non standard" ciò ad indicare che quello implementato non è java.

inoltre mi sembra che Android sia l'unica piattaforma di rilievo a sfruttare tecnologie inerenti Java; Bada usa il C, Apple Objective-C e Windows C# ...

insane74
02-08-2011, 21:00
in realtà java su Android non è java, è una approssimazione comune, ma è più corretto dire che le applicazioni che possono girare sotto Android possono essere scritte sfruttando il linguaggio Java e le sue regole, ma di base non di può dire che quello che gira sotto Android sia Java, se conosci la piattaforma avrai sicuramente notato la moltitudine di riferimenti a "JSR non standard" ciò ad indicare che quello implementato non è java.

inoltre mi sembra che Android sia l'unica piattaforma di rilievo a sfruttare tecnologie inerenti Java; Bada usa il C, Apple Objective-C e Windows C# ...

a maggior ragione, viste le percentuali in gioco, NON consigliare Java mi sembra appunto un'esagerazione.
che poi su Android non si usi Java "puro" siamo d'accordo, ma di sicuro viene più facile scrivere per Android conoscendo Java "puro" piuttosto che qualche altro linguaggio. ;)

cdimauro
04-08-2011, 20:17
C#(con MonoDroid)? :stordita: :D

Pagherei oro per poterlo usare al posto di Java su Android. La piattaforma è già scarsa di suo: potessi almeno lavorare con un linguaggio più comodo e produttivo, piangerei con un occhio... :cry:

insane74
04-08-2011, 20:20
C#(con MonoDroid)? :stordita: :D

Pagherei oro per poterlo usare al posto di Java su Android. La piattaforma è già scarsa di suo: potessi almeno lavorare con un linguaggio più comodo e produttivo, piangerei con un occhio... :cry:

viste le cattive acque in cui è finito mono, io non ci scommetterei molto per il futuro! :O

Freaxxx
04-08-2011, 20:24
a maggior ragione, viste le percentuali in gioco, NON consigliare Java mi sembra appunto un'esagerazione.
che poi su Android non si usi Java "puro" siamo d'accordo, ma di sicuro viene più facile scrivere per Android conoscendo Java "puro" piuttosto che qualche altro linguaggio. ;)

ad essere sincero Java rimane un ottimo linguaggio per iniziare qualcuno alla programmazione, sia alla programmazione in genereale sia a quella specificamente orientata al paradigma ad oggetti; usare Java in ambito produttivo partendo oggi da zero è da pazzi secondo me, basta Google come esempio, e Google è anche nel board delle JSR ed ha un certo Gosling come dipendente, ma fa ampio uso di Python e non di Java.

viste le cattive acque in cui è finito mono, io non ci scommetterei molto per il futuro! :O

Perché ? Che ha il progetto Mono?

insane74
04-08-2011, 20:33
ad essere sincero Java rimane un ottimo linguaggio per iniziare qualcuno alla programmazione, sia alla programmazione in genereale sia a quella specificamente orientata al paradigma ad oggetti; usare Java in ambito produttivo partendo oggi da zero è da pazzi secondo me, basta Google come esempio, e Google è anche nel board delle JSR ed ha un certo Gosling come dipendente, ma fa ampio uso di Python e non di Java.


come sempre dipende cosa devi fare.
ad oggi, java è usatissimo in ambito enterprise. applicativi verticali in banche, assicurazioni, ecc sono fatti per la maggior parte in java (senza scomodare dinosauri come il cobol).
poi sono d'accordo che se devo fare un'applicazione desktop windows non la faccio certo in java! (anche se JDownloader è un buon esempio di applicazione desktop "di successo", multipiattaforma).


Perché ? Che ha il progetto Mono?

http://www.google.it/url?sa=t&source=web&cd=1&sqi=2&ved=0CCQQFjAA&url=http%3A%2F%2Fdevelopers.slashdot.org%2Fstory%2F11%2F05%2F03%2F2226259%2FAttachmate-Fires-Mono-Developers&ei=SvM6TuSwGJHXsgaTzoyDCw&usg=AFQjCNHr3_VwqWd791yUwQEsEh_YaC3d4Q

praticamente mono è "dismessa" e DeIcaza ha fondato un'altra società per continuare lo sviluppo, ma ora che non c'è più Novell a pagare, la vedo durissima.

ally
05-08-2011, 08:21
...si ma JWebPane e JMC che fine hanno fatto!?...