BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Oracle ressuscite getCallerClass, au moins pour le moment

par Vikram Gupta , traduit par Nicolas Frankel le 18 oct. 2013 |

Début juillet, Oracle annonçait la suppression de la méthode Java sun.reflect.Reflection.getCallerClass(). Aujourd'hui, la société fait machine arrière avec ce tweet de Mark Reinhold, architecte en chef de la plate-forme Java d'Oracle qui écrivait mardi :

@CedricChampeau @glaforge Nous allons restaurer getCallerClass(int) en 7u40. Le futur de cette méthode en 8 reste à déterminer.

Cédric Champeau a rebondi avec ce tweet :

Bonne nouvelle : les gars du jdk ont décidé de revenir sur le comportement de getCallerClass en 1.7u40 et 1.8. #groovy et les systèmes de log ne seront pas impactés :-)

Champeau est le committer principal sur le langage de programmation Groovy. Il travaille chez Pivotal, une division de VMWare qui possède également SpringSource, le sponsor actuel de Groovy. Guillaume Laforge est responsable du développement de Groovy chez SpringSource.

La méthode sun.reflect.Reflection.getCallerClass() fonctionne en retournant l'instance de la classe placée en xème position sur la pile d'appels, avec la class Reflect elle-même en position 0. getCallerClass() fournit un mécanisme pour déterminer la classe d'appel afin d'implémenter un comportement "Dépendant de l'Appelant", une stratégie qui permet aux applications de varier leur comportement en fonction de la classe appelante ou d'autres classes dans la pile d'appels.

Oracle s'est hâté de rappeler que l'utilisation de getCallerClass() et de toutes les autres méthodes dans n'importe lequel des paquetage sun.* peut s'avérer fragile et incohérente, pour les raisons décrites dans l'article "Pourquoi les Développeurs Ne Devraient Pas Ecrire des Programmes Qui Invoquent les Packages 'sun'". L'annonce de cette dépréciation est tracée sur l'outil de suivi OTN.

Cédric Champeau a très tôt mis en lumière cette dépréciation car Groovy dépend de cet appel de méthode.

Non seulement Groovy est impacté, mais Grails a également publié un bug lié sur leur outil de suivi.

Une rapide analyse des moteurs de recherche de code source public, y compris GitHub, révèle des dépendances à getCallerClass() dans une large palette de projets, notamment plusieurs projets actifs d'Oracle comme le Projet Jigsaw et le Projet Lambda, ainsi que des projets tiers comme IntelliJ IDEA.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT