Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6853676

OperatingSystemMXBean.TotalPhysicalMemorySize has incorrect value

XMLWordPrintable

    • b56
    • generic, x86
    • solaris_8, windows_vista

      FULL PRODUCT VERSION :
      java version "1.6.0_10"
      Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
      Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

      java version "1.7.0-ea-fastdebug"
      Java(TM) SE Runtime Environment (build 1.7.0-ea-fastdebug-b58)
      Java HotSpot(TM) Client VM (build 16.0-b02-fastdebug, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Windows XP 64-Bit
      Microsoft Windows [Version 5.2.3790]


      EXTRA RELEVANT SYSTEM CONFIGURATION :
      there should be more than 4G of RAM

      A DESCRIPTION OF THE PROBLEM :
      Such properties of com.sun.management.OperatingSystemMXBean as
        TotalSwapSpaceSize
      FreeSwapSpaceSize
        TotalPhysicalMemorySize
      FreePhysicalMemorySize
      have incorrect values (namely 4294967295 = 0xffffffff) when there is 32bit jre and there are more than 4G of RAM.
      Note: 64bit jre shows correct values.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      something like
        TotalSwapSpaceSize 364c45000
      FreeSwapSpaceSize 2e28f6000
        TotalPhysicalMemorySize 1ffecf000
      FreePhysicalMemorySize 168295000

      ACTUAL -
        TotalSwapSpaceSize ffffffff
      FreeSwapSpaceSize ffffffff
        TotalPhysicalMemorySize ffffffff
      FreePhysicalMemorySize ffffffff


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.lang.management.ManagementFactory;
      import com.sun.management.OperatingSystemMXBean;

      public class Main {
      public static void main(String... args) {
      OperatingSystemMXBean bean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
      System.out.println("TotalSwapSpaceSize " + Long.toHexString(bean.getTotalSwapSpaceSize()));
      System.out.println("FreeSwapSpaceSize " + Long.toHexString(bean.getFreeSwapSpaceSize()));
      System.out.println("TotalPhysicalMemorySize " + Long.toHexString(bean.getTotalPhysicalMemorySize()));
      System.out.println("FreePhysicalMemorySize " + Long.toHexString(bean.getFreePhysicalMemorySize()));
      }
      }

      ---------- END SOURCE ----------

            sla Staffan Larsen (Inactive)
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: