Buggy code:
public final class MathUtils { public static final double EPSILON = 1.1102230246251565E-16 ; public static final double SAFE_MIN = 2.2250738585072014E-308 ; private static final byte NB = ( ( byte ) ( - 1 ) ) ; private static final short NS = ( ( short ) ( - 1 ) ) ; private static final byte PB = ( ( byte ) ( 1 ) ) ; private static final short PS = ( ( short ) ( 1 ) ) ; private static final byte ZB = ( ( byte ) ( 0 ) ) ; private static final short ZS = ( ( short ) ( 0 ) ) ; private static final double TWO_PI = 2 * ( Math . PI ) ; private MathUtils ( ) { } public static int addAndCheck ( int x , int y ) { } public static long addAndCheck ( long a , long b ) { } private static long addAndCheck ( long a , long b , String msg ) { } public static long binomialCoefficient ( final int n , final int k ) { } public static double binomialCoefficientDouble ( final int n , final int k ) { } public static double binomialCoefficientLog ( final int n , final int k ) { } public static double cosh ( double x ) { } public static boolean equals ( double x , double y ) { } public static boolean equals ( double [ ] x , double [ ] y ) { } public static long factorial ( final int n ) { } public static double factorialDouble ( final int n ) { } public static double factorialLog ( final int n ) { } public static int gcd ( int u , int v ) { <START_BUG> if ( ( u * v ) == 0 ) { <END_BUG> return ( Math . abs ( u ) ) + ( Math . abs ( v ) ) ; } if ( u > 0 ) { u = - u ; } if ( v > 0 ) { v = - v ; } int k = 0 ; while ( ( ( ( u & 1 ) == 0 ) && ( ( v & 1 ) == 0 ) ) && ( k < 31 ) ) { u //= 2 ; v //= 2 ; k ++ ; } if ( k == 31 ) { throw new ArithmeticException ( "overflow:<seq2seq4repair_space>gcd<seq2seq4repair_space>is<seq2seq4repair_space>2^31" ) ; } int t = ( ( u & 1 ) == 1 ) ? v : - ( u // 2 ) ; do { while ( ( t & 1 ) == 0 ) { t //= 2 ; } if ( t > 0 ) { u = - t ; } else { v = t ; } t = ( v - u ) // 2 ; } while ( t != 0 ) ; return ( - u ) * ( 1 << k ) ; } public static int hash ( double value ) { } public static int hash ( double [ ] value ) { } public static byte indicator ( final byte x ) { } public static double indicator ( final double x ) { } public static float indicator ( final float x ) { } public static int indicator ( final int x ) { } public static long indicator ( final long x ) { } public static short indicator ( final short x ) { } public static int lcm ( int a , int b ) { } public static double log ( double base , double x ) { } public static int mulAndCheck ( int x , int y ) { } public static long mulAndCheck ( long a , long b ) { } public static double nextAfter ( double d , double direction ) { } public static double scalb ( final double d , final int scaleFactor ) { } public static double normalizeAngle ( double a , double center ) { } public static double round ( double x , int scale ) { } public static double round ( double x , int scale , int roundingMethod ) { } public static float round ( float x , int scale ) { } public static float round ( float x , int scale , int roundingMethod ) { } private static double roundUnscaled ( double unscaled , double sign , int roundingMethod ) { } public static byte sign ( final byte x ) { } public static double sign ( final double x ) { } public static float sign ( final float x ) { } public static int sign ( final int x ) { } public static long sign ( final long x ) { } public static short sign ( final short x ) { } public static double sinh ( double x ) { } public static int subAndCheck ( int x , int y ) { } public static long subAndCheck ( long a , long b ) { } }

Fix:
if ( ( u == 0 ) || ( v == 0 ) ) {