Microsoft KB Archive/232638

= PRB: Java Distribution Units Need Lots of Disk Space to Install on a FAT System =

Article ID: 232638

Article Last Modified on 6/14/2006

-

APPLIES TO


 * Microsoft Visual J++ 6.0 Standard Edition
 * Microsoft Software Development Kit for Java 3.1
 * Microsoft Software Development Kit for Java 3.2
 * Microsoft Internet Explorer 4.0 128-Bit Edition
 * Microsoft Internet Explorer 4.01 Service Pack 2
 * Microsoft Internet Explorer 4.01 Service Pack 1
 * Microsoft Internet Explorer 4.01 Service Pack 2
 * Microsoft Java Virtual Machine

-



This article was previously published under Q232638



SYMPTOMS
Java Distribution Units (CAB files that are installed into the Java Package Manager) require a lot more disk space during the installation on FAT systems when compared to NTFS or FAT32 systems.

Because of this drives formatted as FAT that are low on disk space have a higher chance of running out of space during the CAB download and install process. The end result is a failed CAB installation, which unfortunately is usually silent, presenting no error messages to the user. Here are some symptoms of this problem:
 * Java applets installed into the JPM do not run after they are downloaded.
 * No Java applets run on a particular computer after upgrading the Microsoft virtual machine (Microsoft VM). Note that the user may not be aware that the Microsoft VM was upgraded.
 * When installing Visual Studio, Setup keeps prompting the user to install the Microsoft VM and reboot (even though it already performed this step).



CAUSE
More temporary disk space is required on a hard drive formatted as FAT (as compared to NTFS or FAT32) when downloading and installing the same Distribution Unit (DU).

DU CAB files download into a temporary directory. As an intermediate step, all of the files inside the CAB archive get extracted to temporary space on the hard disk. Finally, all the extracted files get re-packaged into a ZIP file that resides in your "%windir%\java\packages" directory (where %windir% is the client's Windows directory).

If the drive has a large cluster size (such as drives formatted as FAT), each file will temporarily take up more space before it is recompressed into a ZIP file. Since Java DUs typically contain hundreds (or possibly thousands) of small class files, the cluster size can cause a relatively small DU to require a huge amount of temporary hard disk space.



RESOLUTION
The easiest resolution is for the user to free up some disk space and try the download or install again. To be safe, ensure that the hard drive where windows is installed has at least 200 MB of free disk space.

Developers can minimize the impact of this problem on their users by breaking up each DU into smaller DUs. That way the temporary disk space required by each DU is smaller.



Example
NTFS and FAT32, by default on a 3 gigabyte (GB) partition, use a 4 kilobyte (KB) cluster size (512 byte sector * 8 sectors). FAT, by default will use a 64 KB cluster size (512 byte sector * 128 sectors). NOTE: A cluster consists of one or more 512 byte sectors and each file consumes one or more clusters (always rounded up).

Therefore, on a 3 GB hard disk with a CAB file consisting of five files (where these file are 0.5 KB, 1 KB, 2 KB, 5 KB, 10 KB, 75 KB, respectively):

Total Space needed to decompress CAB file: NTFS: 27 clusters * 4 KB/cluster = 108 KB FAT: 7 clusters * 64 KB/cluster = 448 KB

NOTE: The above example uses only six files. If a CAB archive contains hundreds or even thousands of Java class files, it is fairly easy to run out of disk space on a FAT system.

