src/share/classes/java/util/Spliterators.java

Print this page
rev 7572 : 8017141: java.util/stream Spliterators from sequential sources should not catch OOME
Reviewed-by:
Contributed-by: paul.sandoz@oracle.com

*** 1312,1327 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! Object[] a; ! try { ! a = new Object[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1312,1322 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! Object[] a = new Object[n]; int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 1427,1442 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! int[] a; ! try { ! a = new int[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1422,1432 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! int[] a = new int[n]; int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 1542,1557 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! long[] a; ! try { ! a = new long[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1532,1542 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! long[] a = new long[n]; int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 1657,1672 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! double[] a; ! try { ! a = new double[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1642,1652 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! double[] a = new double[n]; int j = 0; do { a[j] = holder.value; } while (++j < n && tryAdvance(holder)); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 1793,1808 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! Object[] a; ! try { ! a = new Object[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = i.next(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1773,1783 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! Object[] a = new Object[n]; int j = 0; do { a[j] = i.next(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 1908,1923 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! int[] a; ! try { ! a = new int[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = i.nextInt(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1883,1893 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! int[] a = new int[n]; int j = 0; do { a[j] = i.nextInt(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 2005,2020 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! long[] a; ! try { ! a = new long[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = i.nextLong(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 1975,1985 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! long[] a = new long[n]; int j = 0; do { a[j] = i.nextLong(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j;
*** 2102,2117 **** int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! double[] a; ! try { ! a = new double[n]; ! } catch (OutOfMemoryError oome) { ! return null; ! } int j = 0; do { a[j] = i.nextDouble(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j; --- 2067,2077 ---- int n = batch + BATCH_UNIT; if (n > s) n = (int) s; if (n > MAX_BATCH) n = MAX_BATCH; ! double[] a = new double[n]; int j = 0; do { a[j] = i.nextDouble(); } while (++j < n && i.hasNext()); batch = j; if (est != Long.MAX_VALUE) est -= j;