/** Ċ Ġ* ĠCopyright Ġ 2 0 1 0 Ġ- Ġ 2 0 1 9 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġjet brains . ex od us . gc Ċ Ċ import Ġjet brains . ex od us . core . execution . Latch Job Ċ import Ġmu . K Logging Ċ Ċ internal Ġclass ĠClean Ent ire Log Job ( private Ġval Ġgc : ĠG arbage Collector ) Ġ: ĠL atch Job () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Clean Ent ire Log Job Ġstarted " Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog Ġ= Ġgc . log ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast NumberOf Files Ġ= Ġjava . lang . Long . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrepeat Ġcleaning Ġuntil Ġnumber Ġof Ġfiles Ġstops Ġde creasing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠnumberOf Files Ġ= Ġlog . numberOf Files ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( numberOf Files Ġ== Ġ 1 L Ġ|| ĠnumberOf Files Ġ>= Ġlast NumberOf Files ) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast NumberOf Files Ġ= ĠnumberOf Files ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhigh File Address Ġ= Ġlog . high File Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfile Address Ġ= Ġlog . low Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( file Address Ġ!= Ġhigh File Address ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . do Clean File ( file Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Address Ġ= Ġlog . getNext File Address ( file Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . test Delete Pending Files () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Clean Ent ire Log Job Ġfinished " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ċ } ĊĊ