< 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 >