Link to home
Start Free TrialLog in
Avatar of hank1
hank1

asked on

runFinalizersOnExit

Is there anyway to hardwire runFinalizersOnExit
into a class?

Can you make an object that absolutely will run its
its finalize method?  If you can't insure it how do
you note it in the javadoc page.  Is there a standard
BEWARE gif I haven't seen?  Is there a compiler way to
change the default of not running finalizers.  (Does
java have a "pragma" way of controlling the compiler?)
Oh, just questions questions questions.

Comments only for a few days unless your believe your
answer is truly a definitive.
Avatar of rjg2000
rjg2000

To the best of my knowledge.

not as such, you can call Runtime.runFinalizersOnExit(true) to force the VM to run the finalizers before collecting the object but there is not guarentee that this will be done immediately.  (It will be done at the time the object is actually freed which may be alot later than when thre reference was lost.  I belive you can force unreference objects to run their finalizers by calling Runtime.runFinalization().  There is no way to force this behaviour without user code.

The way I would approach this is if the finalizer is so important then I would explictly call your own finaliztion method when you throw the object away.  (you imply that you really need the locked resource back and this thus guarantees it).

Avatar of hank1

ASKER

Running a program normally allows runFinalizersOnExit(true)
to run the finalize methods.  'break'ing out of a program
defeats it.  Anyway to 'capture' this
abnormal program abort and let runFinalizersOnExit()
do it thing?
Not to the best of my knowledge,

If it is really important to do this clean up you will have to do
the house keeping yourself.

If you are talking about breaking out if a program by an execption you can catch this using

try
{
      ..program
}
catch(Throwable t)
{
      cleanUp();
}
}
Avatar of hank1

ASKER

Ah yes, so right.  Just capture the exception ...  Dahhhh
Thanks.  Plop an answer in here and I'll give rjg2000 the points
PS - You ready for 1999 - 2000 xsistion ( which is still the
20th century by-the-way)
ASKER CERTIFIED SOLUTION
Avatar of rjg2000
rjg2000

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial