DOCUMENT:Q168748    [winnt]

TITLE   :Java Applets Cause IE 3.02 to Stop Responding w/ SP3

PRODUCT :Microsoft Windows NT

PROD/VER:4.00

OPER/SYS:WINDOWS

KEYWORDS:kbbug4.00 kbfile kbfix4.00



-------------------------------------------------------------------------

The information in this article applies to:



 - Microsoft Windows NT Workstation version 4.0

 - Microsoft Windows NT Server version 4.0

 - Microsoft Internet Explorer version 3.02

-------------------------------------------------------------------------



SYMPTOMS

========



Internet Explorer version 3.02 may hang when connecting to a Web link that

contains a Java application after you have installed Windows NT version 4.0

Service Pack 3. The application will stop responding only if the Display

Properties Color Palette is set to True Color.



CAUSE

=====



In Windows NT version 4.0 Service Pack 3 the GetDIBits API does not fill

the bit fields when a BI_RGB (uncompressed) DIB is returned on a True Color

(32 bpp) display. This GDI change was made because the bit fields are not

required in this case. As a side effect, this change may cause a regression

in applications that expect a valid RGB mask on a True Color display.



The Java virtual machine included with Internet Explorer 3.02 calls

GetDIBits when initializing the display palette. The Java virtual machine

expects a valid, signed RGB mask value larger than 0x80h and, if a value

less than 0x80h is received, it doubles the mask value in a tight loop

until it is larger than 0x80h. Because Service Pack 3 GetDIBits do not fill

the bit fields when a BI_RGB is returned, applications that evaluate the

RGB mask receive an unlikely result that can be negative (for example,

0xffffffe0h.) When the Java virtual machine evaluates the RGB mask and

receives a negative value, it loops forever and causes Internet Explorer to

stop responding.



It is important to note that the Java virtual machine should be treating

the RGB Mask as an unsigned integer. There are some conditions where an ATI

video card returns a valid RGB Mask value of 0xff000000h causing the Java

virtual machine to loop forever because it is not treating the mask as an

unsigned integer. A separate fix for the Java virtual machine issue with

ATI video cards in True Color will be available in Internet Explorer 4.0.

The Java code is licensed from Sun Microsystems, Inc.



RESOLUTION

==========



To work around this problem, do not use the True Color palette in Display

Properties. To resolve this problem, obtain the hotfix mentioned below or

wait for the next service pack.



Win32k.sys was modified to return a valid RGB color mask on True Color

display systems.



Java-fix has been superseded by Getadmin-fix. You can find the latest

hotfix at the following Microsoft ftp site:



   ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40/

   hotfixes-postSP3/getadmin-fix



You can find the original hotfix at the following Microsoft ftp site:



   ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40/

   hotfixes-postSP3/archive/java-fix



WARNING: If you install the original (archived) version of this hotfix

AFTER you apply the later version, your system may become unusable.

Microsoft does not recommend you install the original hotfix after applying

the later version.



STATUS

======



Microsoft has confirmed this to be a problem in Windows NT version 4.0. A

supported fix is now available, but is not fully regression-tested and

should be applied only to systems experiencing this specific problem.

Unless you are severely impacted by this specific problem, Microsoft

recommends that you wait for the next Service Pack that contains this fix.

Contact Microsoft Product Support Services for more information.



Additional query words: 4.00 ie 3.02 prodnt



============================================================================



THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS

PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS

ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO

EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR

ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,

CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF

MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION

OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES

SO THE FOREGOING LIMITATION MAY NOT APPLY.