[picocontainer-scm] [scm-git][7/8] Fix threadlocal memory leak.
Michael Rimov <git-yCVjj/[email protected]> Wed, 10 Jul 2013 13:32:30 -0500 (CDT)
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
--95014bdabcea21c3f54cfe5c4d1d18a9bfe10f8f Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline commit 2c7e1e43ea142c0f571f278736b89c6031861787=0AAuthor: Michael Rimov= <[email protected]>=0AAuthorDate: Wed, 10 Jul 2013 10:17:06 -0700= =0ACommit: Michael Rimov <[email protected]>=0ACommitDate: Wed,= 10 Jul 2013 10:17:06 -0700=0A=0A Fix threadlocal memory leak.=0A=0Adiff= --git a/web/web-core/src/java/com/picocontainer/web/PicoServletContainerLi= stener.java b/web/web-core/src/java/com/picocontainer/web/PicoServletContai= nerListener.java=0Aindex 3a99eae..f9581a2 100644=0A--- a/web/web-core/src/j= ava/com/picocontainer/web/PicoServletContainerListener.java=0A+++ b/web/web= -core/src/java/com/picocontainer/web/PicoServletContainerListener.java=0A@@= -221,7 +221,9 @@ public class PicoServletContainerListener implements Serv= letContextListener, Htt=0A dispose(scopedContainers.getApplication= Container());=0A }=0A =0A+ if (scopedContainers !=3D= null) {=0A scopedContainers.dispose(); =0A+ }= =0A removeScopedContainersFromContext(event.getServletContext());= =0A }=0A =0Adiff --git a/web/web-core/src/java/com/picocontainer/web/pr= oviders/LateInstantiatingComponentMonitor.java b/web/web-core/src/java/com/= picocontainer/web/providers/LateInstantiatingComponentMonitor.java=0Aindex = 31a03c7..5af1b24 100644=0A--- a/web/web-core/src/java/com/picocontainer/web= /providers/LateInstantiatingComponentMonitor.java=0A+++ b/web/web-core/src/= java/com/picocontainer/web/providers/LateInstantiatingComponentMonitor.java= =0A@@ -14,7 +14,7 @@ import com.picocontainer.web.StringFromRequest;=0A @Su= ppressWarnings("serial")=0A public class LateInstantiatingComponentMonitor = extends NullComponentMonitor implements Serializable {=0A =0A- private Com= ponentMonitor delegate;=0A+ private final ComponentMonitor delegate;=0A =0A= public LateInstantiatingComponentMonitor(ComponentMonitor delegate) {=0A = this.delegate =3D delegate;=0A=0A=0A=0A= --95014bdabcea21c3f54cfe5c4d1d18a9bfe10f8f Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w= 3.org/TR/REC-html40/loose.dtd">=0A<html style=3D"font-size: 12px;">=0A<head= ><meta http-equiv=3D"Content-type" content=3D"text/html; charset=3Dutf-8"><= /head>=0A<body style=3D"font-size: 12px;">=0A<style type=3D"text/css">=0Adt= :after { content: ':' !important; }=0A></style>=0A<dl class=3D"title" style= =3D"font-size: 12px; font-family: Verdana; background-color: #ddd; padding:= 10px;">=0A<dt style=3D"font-size: 12px; float: left; font-weight: bold; mi= n-width: 6em;">Commit</dt>=0A<dd style=3D"font-size: 12px;">2c7e1e43ea142c0= f571f278736b89c6031861787</dd>=0A<dt style=3D"font-size: 12px; float: left;= font-weight: bold; min-width: 6em;">Branch</dt>=0A<dd style=3D"font-size: = 12px;">master</dd>=0A<dt style=3D"font-size: 12px; float: left; font-weight= : bold; min-width: 6em;">Author</dt>=0A<dd style=3D"font-size: 12px;">Micha= el Rimov <[email protected]></dd>=0A<dt style=3D"font-size: 1= 2px; float: left; font-weight: bold; min-width: 6em;">Date</dt>=0A<dd style= =3D"font-size: 12px;">Wed, 10 Jul 2013 10:17:06 -0700</dd>=0A<dt style=3D"f= ont-size: 12px; float: left; font-weight: bold; min-width: 6em;">Message</d= t>=0A<dd class=3D"" style=3D"font-size: 12px;">Fix threadlocal memory leak.= </dd>=0A</dl>=0A<h2 id=3D"web/web-core/src/java/com/picocontainer/web/PicoS= ervletContainerListener.java" style=3D"font-size: 12px; font-family: Verdan= a; font-weight: bold; line-height: 25px; margin-bottom: 2px; padding-left: = 5px; background-color: #bbb;">Changed file web/web-core/src/java/com/picoco= ntainer/web/PicoServletContainerListener.java</h2>=0A=0A<table style=3D"fon= t-size: 12px; width: 100%; border-collapse: collapse;">=0A<tr style=3D"font= -size: 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; fo= nt-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width: = 23px; text-align: right; background-color: #ccc;" align=3D"right" bgcolor= =3D"#ccc">221</td>=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000= ; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; wid= th: 23px; text-align: right; background-color: #ccc;" align=3D"right" bgcol= or=3D"#ccc">221</td>=0A<td style=3D"font-size: 12px; color: #000; font-fami= ly: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dispose(scopedC= ontainers.getApplicationContainer());</td>=0A</tr>=0A<tr style=3D"font-size= : 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; font-fa= mily: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width: 23px;= text-align: right; background-color: #ccc;" align=3D"right" bgcolor=3D"#cc= c">222</td>=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; font-= family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width: 23p= x; text-align: right; background-color: #ccc;" align=3D"right" bgcolor=3D"#= ccc">222</td>=0A<td style=3D"font-size: 12px; color: #000; font-family: 'Bi= tstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0}</td>=0A</tr>=0A<tr style=3D"font-size= : 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; font-fa= mily: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width: 23px;= text-align: right; background-color: #ccc;" align=3D"right" bgcolor=3D"#cc= c">223</td>=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; font-= family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width: 23p= x; text-align: right; background-color: #ccc;" align=3D"right" bgcolor=3D"#= ccc">223</td>=0A<td style=3D"font-size: 12px; color: #000; font-family: 'Bi= tstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</td>=0A</tr>=0A<tr class=3D"a" style= =3D"font-size: 12px; background-color: #dfd;" bgcolor=3D"#dfd">=0A<td class= =3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera= Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right; b= ackground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc"></td>=0A<td class= =3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera= Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right; b= ackground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">224</td>=0A<td sty= le=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono'= ,'Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0if=C2=A0(scopedContainers=C2=A0!=3D=C2=A0null)=C2=A0{</td>=0A</= tr>=0A<tr style=3D"font-size: 12px;">=0A<td class=3D"ln" style=3D"font-size= : 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Cour= ier',monospace; width: 23px; text-align: right; background-color: #ccc;" al= ign=3D"right" bgcolor=3D"#ccc">224</td>=0A<td class=3D"ln" style=3D"font-si= ze: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Co= urier',monospace; width: 23px; text-align: right; background-color: #ccc;" = align=3D"right" bgcolor=3D"#ccc">225</td>=0A<td style=3D"font-size: 12px; c= olor: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',mono= space;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0scopedContainers.dispose();=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</td>=0A</tr>=0A<tr class=3D"a" style= =3D"font-size: 12px; background-color: #dfd;" bgcolor=3D"#dfd">=0A<td class= =3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera= Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right; b= ackground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc"></td>=0A<td class= =3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera= Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right; b= ackground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">226</td>=0A<td sty= le=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono'= ,'Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0}</td>=0A</tr>=0A<tr style=3D"font-size: 12px;">=0A<td class=3D= "ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sa= ns Mono','Monaco','Courier',monospace; width: 23px; text-align: right; back= ground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">225</td>=0A<td class= =3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera= Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right; b= ackground-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">227</td>=0A<td sty= le=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono'= ,'Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0removeScopedContainersFromContext(event.getServletContext());</= td>=0A</tr>=0A<tr style=3D"font-size: 12px;">=0A<td class=3D"ln" style=3D"f= ont-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monac= o','Courier',monospace; width: 23px; text-align: right; background-color: #= ccc;" align=3D"right" bgcolor=3D"#ccc">226</td>=0A<td class=3D"ln" style=3D= "font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Mon= aco','Courier',monospace; width: 23px; text-align: right; background-color:= #ccc;" align=3D"right" bgcolor=3D"#ccc">228</td>=0A<td style=3D"font-size:= 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Couri= er',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0}</td>=0A</tr>=0A<tr style=3D= "font-size: 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; color: #00= 0; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; wi= dth: 23px; text-align: right; background-color: #ccc;" align=3D"right" bgco= lor=3D"#ccc">227</td>=0A<td class=3D"ln" style=3D"font-size: 12px; color: #= 000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; = width: 23px; text-align: right; background-color: #ccc;" align=3D"right" bg= color=3D"#ccc">229</td>=0A<td style=3D"font-size: 12px; color: #000; font-f= amily: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0</td= >=0A</tr>=0A</table>=0A<h2 id=3D"web/web-core/src/java/com/picocontainer/we= b/providers/LateInstantiatingComponentMonitor.java" style=3D"font-size: 12p= x; font-family: Verdana; font-weight: bold; line-height: 25px; margin-botto= m: 2px; padding-left: 5px; background-color: #bbb;">Changed file web/web-co= re/src/java/com/picocontainer/web/providers/LateInstantiatingComponentMonit= or.java</h2>=0A=0A<table style=3D"font-size: 12px; width: 100%; border-coll= apse: collapse;">=0A<tr style=3D"font-size: 12px;">=0A<td class=3D"ln" styl= e=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono',= 'Monaco','Courier',monospace; width: 23px; text-align: right; background-co= lor: #ccc;" align=3D"right" bgcolor=3D"#ccc">14</td>=0A<td class=3D"ln" sty= le=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono'= ,'Monaco','Courier',monospace; width: 23px; text-align: right; background-c= olor: #ccc;" align=3D"right" bgcolor=3D"#ccc">14</td>=0A<td style=3D"font-s= ize: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','C= ourier',monospace;">=C2=A0@SuppressWarnings("serial")</td>=0A</tr>=0A<tr st= yle=3D"font-size: 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; colo= r: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospa= ce; width: 23px; text-align: right; background-color: #ccc;" align=3D"right= " bgcolor=3D"#ccc">15</td>=0A<td class=3D"ln" style=3D"font-size: 12px; col= or: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monosp= ace; width: 23px; text-align: right; background-color: #ccc;" align=3D"righ= t" bgcolor=3D"#ccc">15</td>=0A<td style=3D"font-size: 12px; color: #000; fo= nt-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0= public=C2=A0class=C2=A0LateInstantiatingComponentMonitor=C2=A0extends=C2=A0= NullComponentMonitor=C2=A0implements=C2=A0Serializable=C2=A0{</td>=0A</tr>= =0A<tr style=3D"font-size: 12px;">=0A<td class=3D"ln" style=3D"font-size: 1= 2px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier= ',monospace; width: 23px; text-align: right; background-color: #ccc;" align= =3D"right" bgcolor=3D"#ccc">16</td>=0A<td class=3D"ln" style=3D"font-size: = 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courie= r',monospace; width: 23px; text-align: right; background-color: #ccc;" alig= n=3D"right" bgcolor=3D"#ccc">16</td>=0A<td style=3D"font-size: 12px; color:= #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace= ;">=C2=A0=C2=A0=C2=A0=C2=A0</td>=0A</tr>=0A<tr class=3D"r" style=3D"font-si= ze: 12px; background-color: #fdd;" bgcolor=3D"#fdd">=0A<td class=3D"ln" sty= le=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono'= ,'Monaco','Courier',monospace; width: 23px; text-align: right; background-c= olor: #ccc;" align=3D"right" bgcolor=3D"#ccc">17</td>=0A<td class=3D"ln" st= yle=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono= ','Monaco','Courier',monospace; width: 23px; text-align: right; background-= color: #ccc;" align=3D"right" bgcolor=3D"#ccc"></td>=0A<td style=3D"font-si= ze: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Co= urier',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0private=C2=A0ComponentMoni= tor=C2=A0delegate;</td>=0A</tr>=0A<tr class=3D"a" style=3D"font-size: 12px;= background-color: #dfd;" bgcolor=3D"#dfd">=0A<td class=3D"ln" style=3D"fon= t-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco'= ,'Courier',monospace; width: 23px; text-align: right; background-color: #cc= c;" align=3D"right" bgcolor=3D"#ccc"></td>=0A<td class=3D"ln" style=3D"font= -size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco',= 'Courier',monospace; width: 23px; text-align: right; background-color: #ccc= ;" align=3D"right" bgcolor=3D"#ccc">17</td>=0A<td style=3D"font-size: 12px;= color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',mo= nospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0private=C2=A0<span class=3D"aa" sty= le=3D"font-size: 12px; background-color: #afa;">final=C2=A0</span>Component= Monitor=C2=A0delegate;</td>=0A</tr>=0A<tr style=3D"font-size: 12px;">=0A<td= class=3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstrea= m Vera Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: ri= ght; background-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">18</td>=0A<t= d class=3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstre= am Vera Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: r= ight; background-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">18</td>=0A<= td style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans= Mono','Monaco','Courier',monospace;">=C2=A0</td>=0A</tr>=0A<tr style=3D"fo= nt-size: 12px;">=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000; = font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; width= : 23px; text-align: right; background-color: #ccc;" align=3D"right" bgcolor= =3D"#ccc">19</td>=0A<td class=3D"ln" style=3D"font-size: 12px; color: #000;= font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; widt= h: 23px; text-align: right; background-color: #ccc;" align=3D"right" bgcolo= r=3D"#ccc">19</td>=0A<td style=3D"font-size: 12px; color: #000; font-family= : 'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">=C2=A0=C2=A0=C2= =A0=C2=A0public=C2=A0LateInstantiatingComponentMonitor(ComponentMonitor=C2= =A0delegate)=C2=A0{</td>=0A</tr>=0A<tr style=3D"font-size: 12px;">=0A<td cl= ass=3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream V= era Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: right= ; background-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">20</td>=0A<td c= lass=3D"ln" style=3D"font-size: 12px; color: #000; font-family: 'Bitstream = Vera Sans Mono','Monaco','Courier',monospace; width: 23px; text-align: righ= t; background-color: #ccc;" align=3D"right" bgcolor=3D"#ccc">20</td>=0A<td = style=3D"font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans Mo= no','Monaco','Courier',monospace;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0this.delegate=C2=A0=3D=C2=A0delegate;</td>=0A</tr>=0A</table>=0A<b= r style=3D"font-size: 12px;"><br style=3D"font-size: 12px;">=0A</body>=0A</= html>=0A= --95014bdabcea21c3f54cfe5c4d1d18a9bfe10f8f--