Microsoft KB Archive/251299: Difference between revisions

From BetaArchive Wiki
(importing KB archive)
 
m (Text replacement - """ to """)
 
Line 49: Line 49:
== SYMPTOMS ==
== SYMPTOMS ==


When you have lots of local variables of object and primitive types in a &quot;finally&quot; block of an interpreted method, this can cause problems during &quot;garbage collection&quot; (GC). (Garbage collection is cleanup of objects that are no longer in use by your program.) This might cause an access violation.<br />
When you have lots of local variables of object and primitive types in a "finally" block of an interpreted method, this can cause problems during "garbage collection" (GC). (Garbage collection is cleanup of objects that are no longer in use by your program.) This might cause an access violation.<br />
<br />
<br />
A call stack of a faulting thread in such failures is as follows:
A call stack of a faulting thread in such failures is as follows:
Line 69: Line 69:
== CAUSE ==
== CAUSE ==


Objects are not reliably promoted inside the &quot;finally&quot; blocks in interpreted methods.
Objects are not reliably promoted inside the "finally" blocks in interpreted methods.


</div>
</div>

Latest revision as of 12:51, 21 July 2020

Knowledge Base


FIX: Problem Promoting Objects in 'Finally' Blocks in Interpreted Methods During Garbage Collection

Article ID: 251299

Article Last Modified on 6/14/2006



APPLIES TO

  • Microsoft Java Virtual Machine



This article was previously published under Q251299

Version 5.00.3190 or earlier

SYMPTOMS

When you have lots of local variables of object and primitive types in a "finally" block of an interpreted method, this can cause problems during "garbage collection" (GC). (Garbage collection is cleanup of objects that are no longer in use by your program.) This might cause an access violation.

A call stack of a faulting thread in such failures is as follows:

msjava!jvmClass__FindInterfaceVTable+0x4a
msjava!CJavaEngine__DO_invokeinterface+0x71
msjava!FastInterpreter+0x3b4
msjava!CJavaEngine__VMInvoke+0x2a
msjava!MethodDesc__CallFromInterpreter+0x29
msjava!CCW_C_ThunkToJava+0x200
                    

CAUSE

Objects are not reliably promoted inside the "finally" blocks in interpreted methods.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

This problem was corrected in versions 3191 and 3236 of the Microsoft virtual machine.

This problem was corrected in Windows 2000 Service Pack 1.


MORE INFORMATION

The Microsoft virtual machine creates live pointer maps for interpreted Java methods to determine what local variables are alive so that they are promoted (keeping them valid) when a garbage collection occurs. Failures could be due to use of stale objects.

REFERENCES

For additional information about the latest service pack for Windows 2000, click the article number below to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack


For information about other fixes provided in builds 3191 and 3236 of the Microsoft virtual machine, please see the following article in the Microsoft Knowledge Base:

245643 Java Applet / Application Causes Error Code 0xc000001d



For support information about Visual J++ and the SDK for Java, visit the following Microsoft Web site:

Keywords: kbbug kbfix kbjavavm33xxfix kbqfe kbhotfixserver KB251299