Java 7 Release Candidate est disponible
Retour sur nio2, coin, javadoc et ses autres nouveautés

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux




Retrouvez le dossier complet de la rédaction
Le , par lunatix, Rédacteur
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 7u1

Source : 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'Oracle

La 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.
  • Strings in switch
    Code :
    1
    2
    3
    case "truc": 
        processTruc(s); 
        break;
  • Binary integral literals
    Code :
    int value = 0b10000000; // 128
  • Underscores in numeric literals
    Code :
    1
    2
    3
    int oneMillion = 1_000_000; 
    //plutôt que 
    int oneMillion = 1000000;
  • Multi-catch and more precise rethrow
    Code :
    1
    2
    3
    4
    catch (IOException|SQLException ex) { 
        logger.log(ex); 
        throw ex; 
    }
  • Improved type inference for generic instance creation (diamond)
    Code :
    1
    2
    3
    Map<String, List<String>> map = new HashMap<String, List<String>>(); 
    //pourra s’écrire plus rapidement grâce au diamond opérateur : 
    Map<String, List<String>> map = new HashMap<>();
  • try-with-resources statement
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BufferedReader br = new BufferedReader(new FileReader(path)); 
    try { 
       return br.readLine(); 
    } finally { 
       br.close(); 
    } 
    //pourra s’écrire : 
    try (BufferedReader br = new BufferedReader(new FileReader(path)) { 
       return br.readLine(); 
    }
  • Simplified varargs method invocation


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
  • Détection de modification de fichiers grâce à la classe WatchService
  • Une toute nouvelle API de manipulation de fichiers.
  • Gestion des E/S asynchrones
  • Enfin une copie de fichier simple
    Code :
    1
    2
    3
    4
    FileSystem default = FileSystems.getDefault(); 
    Path source  = default.getPath("pets/cat.txt"); 
    Path target  = default.getPath("nicePets/nicecat.txt"); 
    Files.copy(source, target);
  • Un support complet des liens physiques et symboliques (si le système de fichier les supporte).
  • Une gestion propre des erreurs, via des exceptions.
  • Un API complète pour l'accès aux attributs des fichiers, qui supporte les fonctionnalités de chaque système (DOS et Posix) ainsi que la gestion des utilisateurs (propriétaire et liste ACL). Le tout parfaitement extensible pour supporter d'autres systèmes de fichiers via des providers. D'ailleurs ce dernier point se concrétise en standard par l'intégration du filesystem "ZIP" qui permet de traiter un fichier ZIP comme un système de fichier standard (ou presque).
    Ainsi pour extraire un fichier d'un ZIP on peut faire ceci (noter l'utilisation du try-with-resource) :
    Code :
    1
    2
    3
    4
    5
    try (FileSystem zip = FileSystems.newFileSystem(Paths.get("file.zip"), null)) { 
        Path source = zip.getPath("pets/cat.txt"); 
        Path target = Paths.get("nicePets/nicecat.txt"); 
        Files.copy(source, target); 
    }


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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Uther Uther
http://www.developpez.com
Expert Confirmé Sénior
le 01/08/2011 20:13
Bah le problème du Mac c'est que ca va prendre un certain temps de réintégrer dans OpenJDK les travaux d'Apple. Ca viendra a coup sur, mais il faudra être patient.
Avatar de bouye bouye
http://www.developpez.com
Rédacteur/Modérateur
le 01/08/2011 23:28
Le planning prévoyait depuis longtemps que la version Mac sorte plus tard que les autres (en même temps ça ne change pas grand chose par rapport a quand Apple s'en occupait).
Avatar de Idelways Idelways
http://www.developpez.com
Expert Confirmé Sénior
le 02/08/2011 1:07
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 issue 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-devant.

Source : avertissement de la fondation Apache

Et vous ?

Qu'en pensez-vous de ce bogue ? L'avez-vous rencontré ?
Avatar de Julien Bodin Julien Bodin
http://www.developpez.com
Membre chevronné
le 02/08/2011 9:13
A propos des optimisations, est-ce qu'on sait quels types d'algorithmes seront optimisés par les améliorations intégrées à Java 7 ?
Avatar de Logan Mauzaize Logan Mauzaize
http://www.developpez.com
Rédacteur/Modérateur
le 02/08/2011 9:33
Je viens de me balader sur la nouvelle JavaDoc (que je trouve bien moche) et je constate que sur le package java.awt, la couleur des lignes n'est pas alternée ?!
Un petit bug ?

Pour revenir sur les énumérations, je rajouterai que les références static c'est le mal
Avatar de kdmbella kdmbella
http://www.developpez.com
Expert Confirmé Sénior
le 02/08/2011 11:05
j'ai toujours dit qu'il faut éviter de passer en prod avec une version non encore éprouvé pour moi la migration vers java 7 c'est pas pour tout de suite
Avatar de _skip _skip
http://www.developpez.com
Expert Confirmé Sénior
le 02/08/2011 11:12
Citation Envoyé par Nemek  Voir le message
Je viens de me balader sur la nouvelle JavaDoc (que je trouve bien moche) et je constate que sur le package java.awt, la couleur des lignes n'est pas alternée ?!
Un petit bug ?

Comparez :
http://download.oracle.com/javase/7/...ql/RowSet.html
http://download.oracle.com/javase/6/...ql/RowSet.html

J'ai surtout l'impression que l'ancienne version est infiniment plus lisible... Je trouve le contraste de la nouvelle version trop faible (peine à repérer les liens), la première colonne du tableau infiniment trop large sur mon écran (25% de la largeur) et j'ai l'impression que les commentaires apparaissent plus que les signatures des méthodes.
Avatar de Logan Mauzaize Logan Mauzaize
http://www.developpez.com
Rédacteur/Modérateur
le 02/08/2011 11:22
Je plussoie !

Je trouve ça moins lisible et j'ai l'impression que ca prends plus de place en hauteur ... Pas génial pour les portables à la résolution limité en hauteur.
Ca ne vaut pas celle d'Android dans laquelle tu gardes toujours les frames ...
Avatar de Idelways Idelways
http://www.developpez.com
Expert Confirmé Sénior
le 27/10/2011 17:08
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 7u1

Source : Oracle, blog d'un contributeur à Apache
Avatar de lunatix lunatix
http://www.developpez.com
Rédacteur
le 27/10/2011 18:02
Suite au blog du developpeur lucene : Oracle a mis a jour les releases notes de java7u1

http://www.oracle.com/technetwork/ja...es-507962.html

JIT and Loop Bugs
Three bugs reported by various parties, including Apache Lucene developers, have been fixed in JDK 7 Update 1, in addition to a fourth related bug found by Oracle (7070134, 7068051, 7044738, 7077439).

c'est maintenant parfaitement clair : go pour java 7 en prod
Avatar de Traroth2 Traroth2
http://www.developpez.com
Expert Confirmé Sénior
le 28/10/2011 17:56
Aaahhhhhh !!!

Voila une excellente nouvelle ! Encore quelques semaines, et j'envisagerais de passer à Java 7...
Offres d'emploi IT
Senior JAVA / J2EE ePrivate Banking Developer
CDI
alltitude SA - Suisse - Canton de Vaud
Parue le 15/12/2014
Développeur front-end h/f
CDI
lzrecruiting - Ile de France - Boulogne-Billancourt (92100)
Parue le 28/11/2014
Développeur front html / css / js
CDI
Axance - Ile de France - Paris (75002)
Parue le 18/12/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula