--- old/src/share/vm/gc/cms/compactibleFreeListSpace.cpp 2015-12-09 12:26:27.528716360 -0500 +++ new/src/share/vm/gc/cms/compactibleFreeListSpace.cpp 2015-12-09 12:26:27.044689091 -0500 @@ -2517,7 +2517,11 @@ // Lacking sufficient experience, CMSOldPLABResizeQuicker is disabled by // default. if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { - size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); + /* + * On a 32-bit VM, the denominator can become zero before of integer overflow + * which is why there is cast to double. + */ + size_t multiple = (size_t) (_num_blocks[word_sz]/((double)CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks)); n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; n_blks = MIN2(n_blks, CMSOldPLABMax); }