|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||||||||
![]() ![]() |
Java 7 Update 1 corrige l'incompatibilité avec Apache Lucene et Solr
Due à une optimisation défectueuse du compilateur JIT Mise à jour du 27 octobre 2011 par Idelways Une anomalie découverte quelques jours avant la sortie de Java 7, et laissée pour compte par manque de temps, vient d'être écartée. Oracle sort l'Update 1 de Java 7 qui corrige l'optimisation défectueuse du compilateur Hotspot, responsable de boucles potentiellement erronées, pouvant produire des résultats de calculs incorrects, ou faire crasher la JVM à l'exécution. Cette anomalie touchait notamment Apache Lucence, le célèbre moteur de recherche en full TEXT, ainsi que son sous-produit Solr. Oracle a sortie cet Update il y a quelques jours, mais n'a mis à jour qu'aujourd'hui les statuts des trois rapports du compilateur "JIT [Just in Time] et les bogues de boucle" signalés par la fondation. D'autres bogues relatifs, découverts en interne, ont été corrigés. Uwe Schindler, un contributeur du projet confirme après des tests que l'anomalie a bien été résorbée. Il n'a cependant pas précisé si l'utilisation des flags -XX:+OptimizeStringConcat et -XX:+AggressiveOpts reste toujours recommandée. Télécharger Java 7u1Source : Oracle, blog d'un contributeur à Apache Un bogue sur Java 7 paralyse Apache Lucene et Solr Une optimisation défectueuse du compilateur Hotspot incriminée Mise à jour du 1 août 2011 par Idelways Un sérieux bogue vient d'être dévoilé suite au lancement final de Java 7. Il entrave le fonctionnement de deux projets de la fondation Apache, notamment Lucene, le célèbre moteur de recherche en full-text. Le problème se situe plus précisément au niveau du compilateur Hotspot qui intègre un optimisateur défectueux, capable de créer des boucles potentiellement erronées. Par conséquent, la machine virtuelle Java peut planter à l'exécution, ou produire des résultats de calculs incorrects. Pour Lucene, ce bogue risque de corrompre l'index, plus particulièrement sur la version qui embarque le PulsingCodec. L'autre projet phare de la fondation Apache affecté par ce bogue est Solr, le moteur de recherche issu de la bibliothèque Lucene sus-citée. Oracle aurait découvert ce bogue 5 jours avant la sortie de Java 7 en version définitive, mais aurait préféré reporter sa correction au deuxième « service release » de Java 7, le premier étant réservé à la correction des bogues de sécurité, sauf changement de planning. En attendant, les utilisateurs des deux projets doivent temporiser avant de passer à Java 7 en production ou l'utiliser avec l'option -XX:-UseLoopPredicate qui désactive l'optimisation et met ainsi l'index Lucene à l'abri. Un bogue similaire peut surgir sur Java 6 avec les flags -XX:+OptimizeStringConcat et -XX:+AggressiveOpts qui activent des optimisations Hotspot par défaut désactivées. Trois rapports de bogues ont été admis par Oracle, l'un de faible priorité et les deux autres de priorité modérée. De pareils dysfonctionnements n'ont pas encore été signalés sur des produits autres que ceux de la fondation Apache. Pour plus d'informations sur les nouveautés de Java 7, lire ci-dessous. Source : avertissement de la fondation Apache Et vous ? Qu'en pensez-vous de ce bogue ? L'avez-vous rencontré ? Java 7 disponible en version finale Oracle publie son environnement d'exécution et le JDK 7 Mise à jour du 29/07/11, par Hinault Romaric Après plus de quatre ans depuis la sortie de Java 6, Oracle vient de publier la version finale de Java Runtime Environment (JRE) 7. Cette version est la première de Java SE publiée depuis la reprise du langage par Oracle suite au rachat de SUN. Java SE 7 apporte un support pour un bon nombre de tendances qui ont déferlé dans le monde du développement informatique depuis la publication de la dernière version. Il offre une prise en charge amélioré des langages dynamique conçus pour fonctionner sur la machine virtuelle Java comme Scala et Groovy. Java SE 7 embarque une API permettant de simplifier l’exécution d’un programme à travers des processeurs multi-cœurs. Et plusieurs autres nouveautés importantes (lire-ci avant). Le nouveau Runtime Java 7 peut-être utilisé par les développeurs avec les environnements de développement NetBeans ou encore IntelliJ IDEA 10.5. Oracle a annoncé qu’il publiera avant la fin de l’année une mise à jour de son EDI JDeveloper pour un support de Java 7. Le Runtime Java 7 est disponible pour les systèmes d’exploitations Linux, Solaris et Windows 32 bits et 64 bits. Oracle a également annoncé la disponibilité de la version finale du Kit de Développement de Java 7 (JDK7), Télécharger Java 7 sur le site d'Oracle Télécharger JDK 7 sur le site d'OracleLa RC de Java 7 est disponible nio2, coin, javadoc et autres nouveautés Enfin ! Plus de quatre ans après la dernière version majeure de Java, Oracle vient d'annoncer la disponibilité de Java 7 en Release Candidate. Oracle relance enfin l'évolution de la plate-forme phare qu'est Java qui avait été ralentie par la sortie de JavaFX 1.X et ensuite par le rachat de Sun par Oracle. Les nouveautés, si elles sont moins nombreuses qu'initialement espérées (un bon nombre ont été repoussées pour Java 8) sont tout de même importantes. Nous allons en faire un rapide tour d'horizon. Le Projet Coin va apporter des nouveautés au cœur du langage.
Nio2 Le gros morceau à avaler car cela va remplacer l'antique java.io.File (qui reste cependant présent) par une API beaucoup plus moderne et complète. La plupart de ces nouveautés se trouvent dans le package java.nio.File
invokeDynamic : Une amélioration de la JVM pour les langages dynamiques (Groovy par exemple) mais qui sera utilisable directement en Java via l'API java.lang.invoke. CGlib et JavaAssist vont sûrement beaucoup évoluer. Concurrency and collections updates (jsr166y) : pour améliorer vos programmes multi-threadés avec la classe ForkJoinPool Plus anecdotique mais quand même bien sympathique : un nouveau look beaucoup plus moderne pour la javadoc : ![]() Et enfin, toute l'API est pleine de petites nouveautés. Par exemple, la nouvelle classe Objects que vous pouvez découvrir avec Adiguba. L'annonce sur le site d'oracle Télécharger Java 7 sur le site d'Oracle La liste officielle des nouveautés
__________________
Blog blog = new MyBlog(); |
||||||||||||||
|
160
|
|
|
#2 |
|
Membre éprouvé
![]() Développeur Java Inscription : mars 2003 Messages : 561 ![]() |
Y a certaines des fonctionnalités j'en rêve depuis des années !!
En fait c'est "rigolo" 2 de ces nouvelles fonctions j'en aurais eu cruellement besoin pas plus tard que lundi dernier ... ![]() Bon en même temps avant que le projet sur lequel je suis passe en java 7 j'ai un peu de temps.
__________________
(Bio)informaticienne folle ... MOUWAWAWAWA Geekette fan de Marcus et de Nolife !! Jeune Maman |
|
|
01
|
|
|
#3 |
|
Membre Expert
![]() ![]() ![]() Alexis Moussine-PouchkineInscription : janvier 2005 Messages : 1 503 ![]() |
C'est pour l'instant la Release Candidate qui est disponible (build 147). La version finale c'est pour la fin du mois.
(Juillet) (2011!)
__________________
http://alexismp.wordpress.com |
|
10
|
|
|
#4 | ||||
|
Membre confirmé
![]() Benjamin Consultant informatique Inscription : août 2007 Messages : 160 ![]() |
Enfin pourrait-on dire !
Par contre, y'a 2 "fonctionnalités" qui me rebutent un peu : *Underscores in numeric literals Code :
Il manquerait plus qu'il nous fasse en Java8 la possibilité d'utiliser des chiffres pour nommer des constantes et on y verra plus rien ! * try-with-resources statement Code :
Avec le try-with-resource, on peut ajouter des catch et finally (et donc l'exemple est un poil naze là-dessus) ou même pas ? |
||||
|
|
24
|
|
|
#5 |
|
Futur Membre du Club
![]() Développeur Web Inscription : avril 2011 Messages : 28 ![]() |
Je peux me tromper, mais si le try-with-resource ressemble a celui que je connais en python, le finally devient optionnel: les ressources ouvertes par le try sont automatiquement fermées a la sortie du bloc!
|
|
|
10
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 226 ![]() |
Pour les constantes binaires et les underscores dans les littéraux, j'utilise ces deux fonctionnalités depuis quelques années en D et j'avais de plus en plus de mal à m'en passer en Java.
|
|
|
01
|
|
|
#7 | ||||||
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 688 ![]() |
Citation:
Mais à mon avis, les underscores à l’intérieur d'un chiffre peuvent le rendre bien plus lisible. C'est même limite indispensable avec les littéraux binaires. Citation:
On peut rajouter un catch et un finally si on le souhaite, mais la plupart du temps, ça ne sera plus nécessaire. |
||||||
|
|
30
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : janvier 2009 Messages : 51 ![]() |
Pas mal comme fonctionnalites dans Java7
|
|
|
01
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : mars 2008 Messages : 284 ![]() |
Les méthodes de la classe Objects sont vraiment pas mal.
NIO2 avec les WatchService risquent de laisser faire des choses horribles. La première utilité pratique que j'y verrais serais un équivalent à Notepad++. La grosse bêtise à faire serait d'utiliser le système de fichier comme pipe. J'attendais le diamant avec impatience !
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() |
Mais LOL
y'a vraiment mais alors vraiment rien de faramineux... je me bidonne en lisant la javadoc de la classe Objects... il a, je pense, fallu 2h à un stagiaire pour l'écrire, tests inclus. Le try-with-resource est à mon avis le plus utile, mais bon rien d'affolant. La nouvelle syntaxe de générique, qui permet de se passer de la notation de droite, est juste ridicule: ok on raccourcis un peu l'expression, mais bon... Le multicatch est sympa par contre
__________________
gg |
|
|
34
|
|
|
#11 | |||
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 576 ![]() |
Il a fallu quoi? 5 ans bien tapés pour ça?
Je suis un peu déçu par l'absence d'un sucre syntaxique pour les get/set. Et notre API de date promise censée remplacer cette grosse merde (désolé) de Calendar dans tout ça? Quant à la syntaxe en diamant, je trouve que l'inférence de type (le mot clef "var" en C#) aurait été une tellement meilleure solution. Citation:
Code :
|
|||
|
|
40
|
|
|
#12 |
|
Membre chevronné
![]() Julien BodinIngénieur développement logiciels Inscription : février 2009 Messages : 456 ![]() |
Pareil, super déçu.
La nouvelle API File est sympa, le multicatch aussi. Du coup on attend encore 4 ans pour avoir d'autres trucs ? |
|
|
11
|
|
|
#13 | |||
|
Membre confirmé
![]() Benjamin Consultant informatique Inscription : août 2007 Messages : 160 ![]() |
Citation:
Mais qu'en est-il si je développe mes propres classes et que j'ai pas close(), mais fermer() ? (malheureusement, y'a des boîtes qui obligent le français dans les noms de méthode) |
|||
|
|
01
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() ![]() MBELLA EKOUMEDéveloppeur Web Inscription : août 2010 Messages : 690 ![]() |
simplement super ces nouveautés de java 7 mais entre la release candidate et la release faut encore du temps quand meme de plus je trouve que Java 6 c'est encore la classe donc la migration c'est pas pour demain dans tous les cas
![]() au fait le fait que java 7 sorte le 7/7 c'est délibéré ou bien c'est un pur hasard ?
|
|
|
00
|
|
|
#15 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 576 ![]() |
Citation:
http://download.oracle.com/javase/7/...Closeable.html Et effectivement, selon la doc d'oracle les exceptions de libération de ressources sont supprimées : http://download.oracle.com/javase/tu...sed-exceptions Il n'est toutefois pas super bien précisé ce qui se passe si le code automatique génère une exception alors que le code contenu dans le bloc try s'est bien déroulé. Etant donné que autocloseable spécifie un throw Exception de bas niveau, qu'est-ce que cela impliquerait? |
|
|
|
10
|
|
|
#16 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 138 ![]() |
le try-with-resource et le multi-catch pour ma part son les meilleurs innovations de java 7. J'espere que java 8 est prevue pour bientot.
|
|
|
01
|
|
|
#17 | |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 391 ![]() |
Tous les 7 portent bonheur
![]() Citation:
Le MultiCatch est sympa aussi. La classe Objects, on peut se moquer, mais elle permet de faire sûrement et simplement des opérations habituelles, ce qui la rend à mes yeux très séduisante. |
|
|
|
00
|
|
|
#18 | ||||
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 688 ![]() |
Citation:
Java 7 est avant tout un signe d'Oracle pour dire : "non, on a pas abandonné Java". Ils ont sorti ce qui était près à l'être mais les majorité des nouveautés clés prévues à l'origine pour Java 7 seront pour Java 8 (lambda, références de méthode, méthode d'extention, collection littératles, Api Date, ...) Citation:
Citation:
Normalement ça devrait être bien plus rapide : le travail sur les nouveautés a venir est bien entamé. Java 7 est juste une sorte de pré-Java 8. Citation:
Vouloir l'intégralité des méthodes en français est de toute façon impossible en Java (main(), finalize(), ...) |
||||
|
|
10
|
|
|
#19 |
|
Membre actif
![]() Inscription : février 2006 Messages : 69 ![]() |
Perso', j'attends surtout Java 8 pour le projet Jigsaw, avec la gestion des dépendances directement gêrée en Java (modules et dépendances inter-modules ou dépendances vers des jars) (même si çà n'ira sans doute pas super loin, çà mettra un coup de pied dans la fourmillère maven).
|
|
|
10
|
|
|
#20 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Pour le reste, rien de surprenant, ca fait depuis fin 2010 que cette liste de fonctionnalité pour java 7 a été arrêtée. Et les nouveaux responsables du coté d'oracle on été clair "on a pris la liste de ce qui était prévu pour java 7, on a regardé ce qu'on pouvait faire à temps, on a refusé tout le reste". C'est pas agréable, mais au moins c'est responsable. Oracle, contrairement à sun, a respecté les délais qu'il a promis. De toutes façons, si tout ce qui était prévu avait été mis dedans, ben on aurait encore attendu 1an1/2 avant java 7, date à laquelle java 8 va sortir. Donc au final t'aura tes fonctionnalités à la même date
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
|
43
|
Copyright © 2000-2013 - www.developpez.com