< prev index next >
test/jdk/java/math/BigInteger/ModPow.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -31,11 +31,13 @@
public class ModPow {
public static void main(String[] args) {
Random rnd = new Random(1234);
for (int i=0; i<2000; i++) {
- BigInteger m = new BigInteger(800, rnd);
+ // Clamp random modulus to non-negative or modPow() will throw
+ // an ArithmeticException.
+ BigInteger m = new BigInteger(800, rnd).max(BigInteger.ONE);
BigInteger base = new BigInteger(16, rnd);
if (rnd.nextInt() % 1 == 0)
base = base.negate();
BigInteger exp = new BigInteger(8, rnd);
< prev index next >