<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires pour Blog Xebia France</title>
	<atom:link href="http://blog.xebia.fr/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.fr</link>
	<description>J2EE, Agilité et SOA</description>
	<lastBuildDate>Mon, 06 Sep 2010 22:23:57 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Commentaires sur Java en Production &#8211; L&#8217;audit par Cyrille Le Clerc</title>
		<link>http://blog.xebia.fr/2010/08/25/java-en-production-laudit/#comment-31304</link>
		<dc:creator>Cyrille Le Clerc</dc:creator>
		<pubDate>Mon, 06 Sep 2010 22:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=5252#comment-31304</guid>
		<description>@Stéphane,

Merci d&#039;avoir relevé la contradiction, vous nous avez pris en flagrant délit de &lt;em&gt;&quot;retournement de veste&quot;&lt;/em&gt;  :-).
Nous nous sommes rendu compte que les risques de mauvaise manipulation du fichier de configuration du framework de logs et que développer une surcouche aux appenders du framework de log pour isoler les configurations représente rapidement une charge de travail très importante et dissuasive.

Moralité, nous profitons du fichier de configuration des loggers même si ce n&#039;est pas très orthodoxe et nous séparons les fichiers d&#039;output : le fichier d&#039;audit qui grossit en permanence est différent du fichier de logs qui ne &lt;em&gt;bouge&lt;/em&gt; qu&#039;en cas de dysfonctionnement.

Nous allons mettre à jour le billet sur les dix commandements des logs.

Cyrille</description>
		<content:encoded><![CDATA[<p>@Stéphane,</p>
<p>Merci d&#8217;avoir relevé la contradiction, vous nous avez pris en flagrant délit de <em>&laquo;&nbsp;retournement de veste&nbsp;&raquo;</em>  <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .<br />
Nous nous sommes rendu compte que les risques de mauvaise manipulation du fichier de configuration du framework de logs et que développer une surcouche aux appenders du framework de log pour isoler les configurations représente rapidement une charge de travail très importante et dissuasive.</p>
<p>Moralité, nous profitons du fichier de configuration des loggers même si ce n&#8217;est pas très orthodoxe et nous séparons les fichiers d&#8217;output : le fichier d&#8217;audit qui grossit en permanence est différent du fichier de logs qui ne <em>bouge</em> qu&#8217;en cas de dysfonctionnement.</p>
<p>Nous allons mettre à jour le billet sur les dix commandements des logs.</p>
<p>Cyrille</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Des ESBs et des nuages par Revue de presse, semaine 35 - Espace de fouille</title>
		<link>http://blog.xebia.fr/2010/09/02/des-esbs-et-des-nuages/#comment-31278</link>
		<dc:creator>Revue de presse, semaine 35 - Espace de fouille</dc:creator>
		<pubDate>Mon, 06 Sep 2010 08:36:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=5315#comment-31278</guid>
		<description>[...] Des ESBs et des nuages [...]</description>
		<content:encoded><![CDATA[<p>[...] Des ESBs et des nuages [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Java en Production &#8211; L&#8217;audit par Stéphane</title>
		<link>http://blog.xebia.fr/2010/08/25/java-en-production-laudit/#comment-31106</link>
		<dc:creator>Stéphane</dc:creator>
		<pubDate>Fri, 03 Sep 2010 11:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=5252#comment-31106</guid>
		<description>Article intéressant mais si je ne me trompe vous allez contre le commandement 9 de l&#039;article suivant.
http://blog.xebia.fr/2008/07/11/les-10-commandements-des-logs-applicatives/</description>
		<content:encoded><![CDATA[<p>Article intéressant mais si je ne me trompe vous allez contre le commandement 9 de l&#8217;article suivant.<br />
<a href="http://blog.xebia.fr/2008/07/11/les-10-commandements-des-logs-applicatives/" rel="nofollow">http://blog.xebia.fr/2008/07/11/les-10-commandements-des-logs-applicatives/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Revue de Presse Xebia par Sebastien</title>
		<link>http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/#comment-30939</link>
		<dc:creator>Sebastien</dc:creator>
		<pubDate>Wed, 01 Sep 2010 09:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=5303#comment-30939</guid>
		<description>@adiGuba

Je suis bien d&#039;accord que si le close() modifie l&#039;état de la ressource (flush du buffer) alors une exception dans le close() doit être remontée et le traitement interrompu. D&#039;où ma précision sur l&#039;appel de flush().</description>
		<content:encoded><![CDATA[<p>@adiGuba</p>
<p>Je suis bien d&#8217;accord que si le close() modifie l&#8217;état de la ressource (flush du buffer) alors une exception dans le close() doit être remontée et le traitement interrompu. D&#8217;où ma précision sur l&#8217;appel de flush().</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Revue de Presse Xebia par adiGuba</title>
		<link>http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/#comment-30931</link>
		<dc:creator>adiGuba</dc:creator>
		<pubDate>Wed, 01 Sep 2010 07:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=5303#comment-30931</guid>
		<description>@Stephane : Il y a une discussion sur l&#039;intégration de cela automatiquement dans le try/finally, mais cela pose un problème de compatibilité.

Regarde ce code :
[code]
try {
	throw new A();
} finally {
	throw new B();
}
[/code]

Quel est l&#039;exception qui doit être remontée ? Et quel est celle qui doit être ajouté dans les &quot;suppressed-exceptions&quot; ?

La logique voudrait qu&#039;on remonte A en cachant B, car A est l&#039;exception d&#039;origine, mais on obtient alors un comportement totalement différent de ce qui est fait actuellement (seul B est remontée)
Il faudrait faire l&#039;inverse pour rester compatible, mais on obtient alors l&#039;inverse de ce qui est souhaité...


Mais en fait, ce problème se pose principalement sur la gestion des ressources. Je ne vois pas beaucoup de cas où l&#039;on a besoin de traiter des exceptions dans un finally.



Enfin, les exceptions ne sont pas mutable. La méthode initCause() permet déjà de modifier le stacktrace...




@Sebastien : La plupart du temps le close() ne génèrera pas d&#039;exception (et du coup les deux solutions ne posent aucun problème).

Mais lorsqu&#039;on utilise des flux bufférisé ou un peu plus évolué, il est possible que le close() écrivent des données sur le disque. Dans ce cas là ignorer l&#039;exception pourrait poser quelque problème car on ne pourra pas détecter les erreurs d&#039;écriture.

Imagine un code comme celui-ci qui déplace un fichier (copie puis suppression du fichier d&#039;origine) :

[code]
copyFile(a, b);
a.delete();
[/code]

En cas d&#039;erreur lors du close() pour X raison, le fichier peut être corrompu.
En ignorant l&#039;exception on continuera normalement en supprimant notre fichier source...

Avec le code de l&#039;article on ne peut pas détecter cela programmatiquement.
Avec le pattern d&#039;un try/finally par ressource on recevra bien l&#039;exception.


a++</description>
		<content:encoded><![CDATA[<p>@Stephane : Il y a une discussion sur l'intégration de cela automatiquement dans le try/finally, mais cela pose un problème de compatibilité.</p>
<p>Regarde ce code :</p>
<div class="syntax_hilite">
<div id="code-1">
<div class="code">try <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; throw new A<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span> finally <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; throw new B<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Quel est l'exception qui doit être remontée ? Et quel est celle qui doit être ajouté dans les "suppressed-exceptions" ?</p>
<p>La logique voudrait qu'on remonte A en cachant B, car A est l'exception d'origine, mais on obtient alors un comportement totalement différent de ce qui est fait actuellement (seul B est remontée)<br />
Il faudrait faire l'inverse pour rester compatible, mais on obtient alors l'inverse de ce qui est souhaité...</p>
<p>Mais en fait, ce problème se pose principalement sur la gestion des ressources. Je ne vois pas beaucoup de cas où l'on a besoin de traiter des exceptions dans un finally.</p>
<p>Enfin, les exceptions ne sont pas mutable. La méthode initCause() permet déjà de modifier le stacktrace...</p>
<p>@Sebastien : La plupart du temps le close() ne génèrera pas d'exception (et du coup les deux solutions ne posent aucun problème).</p>
<p>Mais lorsqu'on utilise des flux bufférisé ou un peu plus évolué, il est possible que le close() écrivent des données sur le disque. Dans ce cas là ignorer l'exception pourrait poser quelque problème car on ne pourra pas détecter les erreurs d'écriture.</p>
<p>Imagine un code comme celui-ci qui déplace un fichier (copie puis suppression du fichier d'origine) :</p>
<div class="syntax_hilite">
<div id="code-2">
<div class="code">copyFile<span style="color:#006600; font-weight:bold;">&#40;</span>a, b<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
a.<span style="">delete</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>En cas d'erreur lors du close() pour X raison, le fichier peut être corrompu.<br />
En ignorant l'exception on continuera normalement en supprimant notre fichier source...</p>
<p>Avec le code de l'article on ne peut pas détecter cela programmatiquement.<br />
Avec le pattern d'un try/finally par ressource on recevra bien l'exception.</p>
<p>a++</p>
]]></content:encoded>
	</item>
</channel>
</rss>
