=====================================================================
Found a 121 line (629 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectCharBufferU.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectCharBufferS.java
DirectCharBufferS sb = (DirectCharBufferS)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 1);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public CharBuffer put(char[] src, int offset, int length) {
if ((length << 1) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromCharArray(src, offset << 1,
ix(pos), length << 1);
else
Bits.copyFromByteArray(src, offset << 1,
ix(pos), length << 1);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public CharBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 1);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = (pos + start) << 1;
return new DirectCharBufferS(this, -1, 0, sublen, sublen, off);
=====================================================================
Found a 294 line (531 tokens) duplication in the following files:
Starting at line 486 of /usr/local/java/src/java/lang/StrictMath.java
Starting at line 575 of /usr/local/java/src/java/lang/Math.java
public static int round(float a) {
return (int)floor(a + 0.5f);
}
/**
* Returns the closest long to the argument. The result
* is rounded to an integer by adding 1/2, taking the floor of the
* result, and casting the result to type long. In other
* words, the result is equal to the value of the expression:
*
(long)Math.floor(a + 0.5d)*
* Special cases: *
Long.MIN_VALUE, the result is
* equal to the value of Long.MIN_VALUE.
* Long.MAX_VALUE, the result is
* equal to the value of Long.MAX_VALUE.long.
* @return the value of the argument rounded to the nearest
* long value.
* @see java.lang.Long#MAX_VALUE
* @see java.lang.Long#MIN_VALUE
*/
public static long round(double a) {
return (long)floor(a + 0.5d);
}
private static Random randomNumberGenerator;
private static synchronized void initRNG() {
if (randomNumberGenerator == null)
randomNumberGenerator = new Random();
}
/**
* Returns a double value with a positive sign, greater
* than or equal to 0.0 and less than 1.0.
* Returned values are chosen pseudorandomly with (approximately)
* uniform distribution from that range.
* * When this method is first called, it creates a single new * pseudorandom-number generator, exactly as if by the expression *
* This new pseudorandom-number generator is used thereafter for all * calls to this method and is used nowhere else. *new java.util.Random
* This method is properly synchronized to allow correct use by more
* than one thread. However, if many threads need to generate
* pseudorandom numbers at a great rate, it may reduce contention for
* each thread to have its own pseudorandom-number generator.
*
* @return a pseudorandom double greater than or equal
* to 0.0 and less than 1.0.
* @see java.util.Random#nextDouble()
*/
public static double random() {
if (randomNumberGenerator == null) initRNG();
return randomNumberGenerator.nextDouble();
}
/**
* Returns the absolute value of an int value.
* If the argument is not negative, the argument is returned.
* If the argument is negative, the negation of the argument is returned.
*
* Note that if the argument is equal to the value of
* Integer.MIN_VALUE, the most negative representable
* int value, the result is that same value, which is
* negative.
*
* @param a the argument whose absolute value is to be determined
* @return the absolute value of the argument.
* @see java.lang.Integer#MIN_VALUE
*/
public static int abs(int a) {
return (a < 0) ? -a : a;
}
/**
* Returns the absolute value of a long value.
* If the argument is not negative, the argument is returned.
* If the argument is negative, the negation of the argument is returned.
*
* Note that if the argument is equal to the value of
* Long.MIN_VALUE, the most negative representable
* long value, the result is that same value, which is
* negative.
*
* @param a the argument whose absolute value is to be determined
* @return the absolute value of the argument.
* @see java.lang.Long#MIN_VALUE
*/
public static long abs(long a) {
return (a < 0) ? -a : a;
}
/**
* Returns the absolute value of a float value.
* If the argument is not negative, the argument is returned.
* If the argument is negative, the negation of the argument is returned.
* Special cases:
*
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))* * @param a the argument whose absolute value is to be determined * @return the absolute value of the argument. */ public static float abs(float a) { return (a <= 0.0F) ? 0.0F - a : a; } /** * Returns the absolute value of a
double value.
* If the argument is not negative, the argument is returned.
* If the argument is negative, the negation of the argument is returned.
* Special cases:
* Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
*
* @param a the argument whose absolute value is to be determined
* @return the absolute value of the argument.
*/
public static double abs(double a) {
return (a <= 0.0D) ? 0.0D - a : a;
}
/**
* Returns the greater of two int values. That is, the
* result is the argument closer to the value of
* Integer.MAX_VALUE. If the arguments have the same value,
* the result is that same value.
*
* @param a an argument.
* @param b another argument.
* @return the larger of a and b.
* @see java.lang.Long#MAX_VALUE
*/
public static int max(int a, int b) {
return (a >= b) ? a : b;
}
/**
* Returns the greater of two long values. That is, the
* result is the argument closer to the value of
* Long.MAX_VALUE. If the arguments have the same value,
* the result is that same value.
*
* @param a an argument.
* @param b another argument.
* @return the larger of a and b.
* @see java.lang.Long#MAX_VALUE
*/
public static long max(long a, long b) {
return (a >= b) ? a : b;
}
private static long negativeZeroFloatBits = Float.floatToIntBits(-0.0f);
private static long negativeZeroDoubleBits = Double.doubleToLongBits(-0.0d);
/**
* Returns the greater of two float values. That is,
* the result is the argument closer to positive infinity. If the
* arguments have the same value, the result is that same
* value. If either value is NaN, then the result is NaN. Unlike
* the the numerical comparison operators, this method considers
* negative zero to be strictly smaller than positive zero. If one
* argument is positive zero and the other negative zero, the
* result is positive zero.
*
* @param a an argument.
* @param b another argument.
* @return the larger of a and b.
*/
public static float max(float a, float b) {
if (a != a) return a; // a is NaN
if ((a == 0.0f) && (b == 0.0f)
&& (Float.floatToIntBits(a) == negativeZeroFloatBits)) {
return b;
}
return (a >= b) ? a : b;
}
/**
* Returns the greater of two double values. That
* is, the result is the argument closer to positive infinity. If
* the arguments have the same value, the result is that same
* value. If either value is NaN, then the result is NaN. Unlike
* the the numerical comparison operators, this method considers
* negative zero to be strictly smaller than positive zero. If one
* argument is positive zero and the other negative zero, the
* result is positive zero.
*
* @param a an argument.
* @param b another argument.
* @return the larger of a and b.
*/
public static double max(double a, double b) {
if (a != a) return a; // a is NaN
if ((a == 0.0d) && (b == 0.0d)
&& (Double.doubleToLongBits(a) == negativeZeroDoubleBits)) {
return b;
}
return (a >= b) ? a : b;
}
/**
* Returns the smaller of two int values. That is,
* the result the argument closer to the value of
* Integer.MIN_VALUE. If the arguments have the same
* value, the result is that same value.
*
* @param a an argument.
* @param b another argument.
* @return the smaller of a and b.
* @see java.lang.Long#MIN_VALUE
*/
public static int min(int a, int b) {
return (a <= b) ? a : b;
}
/**
* Returns the smaller of two long values. That is,
* the result is the argument closer to the value of
* Long.MIN_VALUE. If the arguments have the same
* value, the result is that same value.
*
* @param a an argument.
* @param b another argument.
* @return the smaller of a and b.
* @see java.lang.Long#MIN_VALUE
*/
public static long min(long a, long b) {
return (a <= b) ? a : b;
}
/**
* Returns the smaller of two float values. That is,
* the result is the value closer to negative infinity. If the
* arguments have the same value, the result is that same
* value. If either value is NaN, then the result is NaN. Unlike
* the the numerical comparison operators, this method considers
* negative zero to be strictly smaller than positive zero. If
* one argument is positive zero and the other is negative zero,
* the result is negative zero.
*
* @param a an argument.
* @param b another argument.
* @return the smaller of a and b.
*/
public static float min(float a, float b) {
if (a != a) return a; // a is NaN
if ((a == 0.0f) && (b == 0.0f)
&& (Float.floatToIntBits(b) == negativeZeroFloatBits)) {
return b;
}
return (a <= b) ? a : b;
}
/**
* Returns the smaller of two double values. That
* is, the result is the value closer to negative infinity. If the
* arguments have the same value, the result is that same
* value. If either value is NaN, then the result is NaN. Unlike
* the the numerical comparison operators, this method considers
* negative zero to be strictly smaller than positive zero. If one
* argument is positive zero and the other is negative zero, the
* result is negative zero.
*
* @param a an argument.
* @param b another argument.
* @return the smaller of a and b.
*/
public static double min(double a, double b) {
if (a != a) return a; // a is NaN
if ((a == 0.0d) && (b == 0.0d)
&& (Double.doubleToLongBits(b) == negativeZeroDoubleBits)) {
return b;
}
return (a <= b) ? a : b;
}
}
=====================================================================
Found a 27 line (523 tokens) duplication in the following files:
Starting at line 610 of /usr/local/java/src/java/util/BitSet.java
Starting at line 2294 of /usr/local/java/src/java/math/BigInteger.java
final static byte trailingZeroTable[] = {
-25, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0};
/**
* Returns the number of bits in the two's complement representation
* of this BigInteger that differ from its sign bit. This method is
* useful when implementing bit-vector style sets atop BigIntegers.
*
* @return number of bits in the two's complement representation
* of this BigInteger that differ from its sign bit.
*/
public int bitCount() {
=====================================================================
Found a 64 line (506 tokens) duplication in the following files:
Starting at line 2243 of /usr/local/java/src/java/awt/geom/AffineTransform.java
Starting at line 2544 of /usr/local/java/src/java/awt/geom/AffineTransform.java
switch (state) {
default:
stateError();
/* NOTREACHED */
case (APPLY_SHEAR | APPLY_SCALE | APPLY_TRANSLATE):
M00 = m00; M01 = m01; M02 = m02;
M10 = m10; M11 = m11; M12 = m12;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
double y = srcPts[srcOff++];
dstPts[dstOff++] = (float) (M00 * x + M01 * y + M02);
dstPts[dstOff++] = (float) (M10 * x + M11 * y + M12);
}
return;
case (APPLY_SHEAR | APPLY_SCALE):
M00 = m00; M01 = m01;
M10 = m10; M11 = m11;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
double y = srcPts[srcOff++];
dstPts[dstOff++] = (float) (M00 * x + M01 * y);
dstPts[dstOff++] = (float) (M10 * x + M11 * y);
}
return;
case (APPLY_SHEAR | APPLY_TRANSLATE):
M01 = m01; M02 = m02;
M10 = m10; M12 = m12;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
dstPts[dstOff++] = (float) (M01 * srcPts[srcOff++] + M02);
dstPts[dstOff++] = (float) (M10 * x + M12);
}
return;
case (APPLY_SHEAR):
M01 = m01; M10 = m10;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
dstPts[dstOff++] = (float) (M01 * srcPts[srcOff++]);
dstPts[dstOff++] = (float) (M10 * x);
}
return;
case (APPLY_SCALE | APPLY_TRANSLATE):
M00 = m00; M02 = m02;
M11 = m11; M12 = m12;
while (--numPts >= 0) {
dstPts[dstOff++] = (float) (M00 * srcPts[srcOff++] + M02);
dstPts[dstOff++] = (float) (M11 * srcPts[srcOff++] + M12);
}
return;
case (APPLY_SCALE):
M00 = m00; M11 = m11;
while (--numPts >= 0) {
dstPts[dstOff++] = (float) (M00 * srcPts[srcOff++]);
dstPts[dstOff++] = (float) (M11 * srcPts[srcOff++]);
}
return;
case (APPLY_TRANSLATE):
M02 = m02; M12 = m12;
while (--numPts >= 0) {
dstPts[dstOff++] = (float) (srcPts[srcOff++] + M02);
dstPts[dstOff++] = (float) (srcPts[srcOff++] + M12);
}
return;
case (APPLY_IDENTITY):
=====================================================================
Found a 136 line (455 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectFloatBufferS.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectFloatBufferU.java
DirectFloatBufferU sb = (DirectFloatBufferU)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 2);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public FloatBuffer put(float[] src, int offset, int length) {
if ((length << 2) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromIntArray(src, offset << 2,
ix(pos), length << 2);
else
Bits.copyFromByteArray(src, offset << 2,
ix(pos), length << 2);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public FloatBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 2);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public ByteOrder order() {
return ((ByteOrder.nativeOrder() != ByteOrder.BIG_ENDIAN)
=====================================================================
Found a 132 line (455 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectShortBufferU.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectShortBufferS.java
DirectShortBufferS sb = (DirectShortBufferS)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 1);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public ShortBuffer put(short[] src, int offset, int length) {
if ((length << 1) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromShortArray(src, offset << 1,
ix(pos), length << 1);
else
Bits.copyFromByteArray(src, offset << 1,
ix(pos), length << 1);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public ShortBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 1);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public ByteOrder order() {
return ((ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN)
=====================================================================
Found a 132 line (455 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectLongBufferU.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectLongBufferS.java
DirectLongBufferS sb = (DirectLongBufferS)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 3);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public LongBuffer put(long[] src, int offset, int length) {
if ((length << 3) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromLongArray(src, offset << 3,
ix(pos), length << 3);
else
Bits.copyFromByteArray(src, offset << 3,
ix(pos), length << 3);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public LongBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 3);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public ByteOrder order() {
return ((ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN)
=====================================================================
Found a 136 line (455 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectIntBufferS.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectIntBufferU.java
DirectIntBufferU sb = (DirectIntBufferU)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 2);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public IntBuffer put(int[] src, int offset, int length) {
if ((length << 2) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromIntArray(src, offset << 2,
ix(pos), length << 2);
else
Bits.copyFromByteArray(src, offset << 2,
ix(pos), length << 2);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public IntBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 2);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public ByteOrder order() {
return ((ByteOrder.nativeOrder() != ByteOrder.BIG_ENDIAN)
=====================================================================
Found a 136 line (455 tokens) duplication in the following files:
Starting at line 265 of /usr/local/java/src/java/nio/DirectDoubleBufferS.java
Starting at line 265 of /usr/local/java/src/java/nio/DirectDoubleBufferU.java
DirectDoubleBufferU sb = (DirectDoubleBufferU)src;
int spos = sb.position();
int slim = sb.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (srem > rem)
throw new BufferOverflowException();
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << 3);
sb.position(spos + srem);
position(pos + srem);
} else if (!src.isDirect()) {
int spos = src.position();
int slim = src.limit();
assert (spos <= slim);
int srem = (spos <= slim ? slim - spos : 0);
put(src.hb, src.offset + spos, srem);
src.position(spos + srem);
} else {
super.put(src);
}
return this;
}
public DoubleBuffer put(double[] src, int offset, int length) {
if ((length << 3) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
checkBounds(offset, length, src.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferOverflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyFromLongArray(src, offset << 3,
ix(pos), length << 3);
else
Bits.copyFromByteArray(src, offset << 3,
ix(pos), length << 3);
position(pos + length);
} else {
super.put(src, offset, length);
}
return this;
}
public DoubleBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
unsafe.copyMemory(ix(pos), ix(0), rem << 3);
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return false;
}
public ByteOrder order() {
return ((ByteOrder.nativeOrder() != ByteOrder.BIG_ENDIAN)
=====================================================================
Found a 64 line (436 tokens) duplication in the following files:
Starting at line 2356 of /usr/local/java/src/java/awt/geom/AffineTransform.java
Starting at line 2450 of /usr/local/java/src/java/awt/geom/AffineTransform.java
switch (state) {
default:
stateError();
/* NOTREACHED */
case (APPLY_SHEAR | APPLY_SCALE | APPLY_TRANSLATE):
M00 = m00; M01 = m01; M02 = m02;
M10 = m10; M11 = m11; M12 = m12;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
double y = srcPts[srcOff++];
dstPts[dstOff++] = M00 * x + M01 * y + M02;
dstPts[dstOff++] = M10 * x + M11 * y + M12;
}
return;
case (APPLY_SHEAR | APPLY_SCALE):
M00 = m00; M01 = m01;
M10 = m10; M11 = m11;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
double y = srcPts[srcOff++];
dstPts[dstOff++] = M00 * x + M01 * y;
dstPts[dstOff++] = M10 * x + M11 * y;
}
return;
case (APPLY_SHEAR | APPLY_TRANSLATE):
M01 = m01; M02 = m02;
M10 = m10; M12 = m12;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
dstPts[dstOff++] = M01 * srcPts[srcOff++] + M02;
dstPts[dstOff++] = M10 * x + M12;
}
return;
case (APPLY_SHEAR):
M01 = m01; M10 = m10;
while (--numPts >= 0) {
double x = srcPts[srcOff++];
dstPts[dstOff++] = M01 * srcPts[srcOff++];
dstPts[dstOff++] = M10 * x;
}
return;
case (APPLY_SCALE | APPLY_TRANSLATE):
M00 = m00; M02 = m02;
M11 = m11; M12 = m12;
while (--numPts >= 0) {
dstPts[dstOff++] = M00 * srcPts[srcOff++] + M02;
dstPts[dstOff++] = M11 * srcPts[srcOff++] + M12;
}
return;
case (APPLY_SCALE):
M00 = m00; M11 = m11;
while (--numPts >= 0) {
dstPts[dstOff++] = M00 * srcPts[srcOff++];
dstPts[dstOff++] = M11 * srcPts[srcOff++];
}
return;
case (APPLY_TRANSLATE):
M02 = m02; M12 = m12;
while (--numPts >= 0) {
dstPts[dstOff++] = srcPts[srcOff++] + M02;
dstPts[dstOff++] = srcPts[srcOff++] + M12;
}
return;
case (APPLY_IDENTITY):
=====================================================================
Found a 60 line (352 tokens) duplication in the following files:
Starting at line 72 of /usr/local/java/src/java/lang/CharacterData.java
Starting at line 73 of /usr/local/java/src/java/lang/CharacterDataLatin1.java
}
static boolean isDigit(char ch) {
return getType(ch) == Character.DECIMAL_DIGIT_NUMBER;
}
static boolean isDefined(char ch) {
return getType(ch) != Character.UNASSIGNED;
}
static boolean isLetter(char ch) {
return (((((1 << Character.UPPERCASE_LETTER) |
(1 << Character.LOWERCASE_LETTER) |
(1 << Character.TITLECASE_LETTER) |
(1 << Character.MODIFIER_LETTER) |
(1 << Character.OTHER_LETTER)) >> getType(ch)) & 1) != 0);
}
static boolean isLetterOrDigit(char ch) {
return (((((1 << Character.UPPERCASE_LETTER) |
(1 << Character.LOWERCASE_LETTER) |
(1 << Character.TITLECASE_LETTER) |
(1 << Character.MODIFIER_LETTER) |
(1 << Character.OTHER_LETTER) |
(1 << Character.DECIMAL_DIGIT_NUMBER)) >> getType(ch)) & 1) != 0);
}
static boolean isSpaceChar(char ch) {
return (((((1 << Character.SPACE_SEPARATOR) |
(1 << Character.LINE_SEPARATOR) |
(1 << Character.PARAGRAPH_SEPARATOR))
>> getType(ch)) & 1) != 0);
}
static boolean isJavaIdentifierStart(char ch) {
return (getProperties(ch) & 0x00007000) >= 0x00005000;
}
static boolean isJavaIdentifierPart(char ch) {
return (getProperties(ch) & 0x00003000) != 0;
}
static boolean isUnicodeIdentifierStart(char ch) {
return (getProperties(ch) & 0x00007000) == 0x00007000;
}
static boolean isUnicodeIdentifierPart(char ch) {
return (getProperties(ch)& 0x00001000) != 0;
}
static boolean isIdentifierIgnorable(char ch) {
return (getProperties(ch) & 0x00007000) == 0x00001000;
}
static char toLowerCase(char ch) {
char mapChar = ch;
int val = getProperties(ch);
if (((val & 0x00020000) != 0) &&
=====================================================================
Found a 19 line (329 tokens) duplication in the following files:
Starting at line 685 of /usr/local/java/src/java/util/BitSet.java
Starting at line 2270 of /usr/local/java/src/java/math/BigInteger.java
static int bitLen(int w) {
// Binary search - decision tree (5 tests, rarely 6)
return
(w < 1<<15 ?
(w < 1<<7 ?
(w < 1<<3 ?
(w < 1<<1 ? (w < 1<<0 ? (w<0 ? 32 : 0) : 1) : (w < 1<<2 ? 2 : 3)) :
(w < 1<<5 ? (w < 1<<4 ? 4 : 5) : (w < 1<<6 ? 6 : 7))) :
(w < 1<<11 ?
(w < 1<<9 ? (w < 1<<8 ? 8 : 9) : (w < 1<<10 ? 10 : 11)) :
(w < 1<<13 ? (w < 1<<12 ? 12 : 13) : (w < 1<<14 ? 14 : 15)))) :
(w < 1<<23 ?
(w < 1<<19 ?
(w < 1<<17 ? (w < 1<<16 ? 16 : 17) : (w < 1<<18 ? 18 : 19)) :
(w < 1<<21 ? (w < 1<<20 ? 20 : 21) : (w < 1<<22 ? 22 : 23))) :
(w < 1<<27 ?
(w < 1<<25 ? (w < 1<<24 ? 24 : 25) : (w < 1<<26 ? 26 : 27)) :
(w < 1<<29 ? (w < 1<<28 ? 28 : 29) : (w < 1<<30 ? 30 : 31)))));
}
=====================================================================
Found a 69 line (328 tokens) duplication in the following files:
Starting at line 112 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferB.java
Starting at line 112 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferL.java
Bits.putCharL(bb, ix(checkIndex(i)), x);
return this;
}
public CharBuffer compact() {
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
ByteBuffer db = bb.duplicate();
db.limit(ix(lim));
db.position(ix(0));
ByteBuffer sb = db.slice();
sb.position(pos << 1);
sb.compact();
position(rem);
limit(capacity());
return this;
}
public boolean isDirect() {
return bb.isDirect();
}
public boolean isReadOnly() {
return false;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
return new ByteBufferAsCharBufferL(bb, -1, 0, sublen, sublen, off);
=====================================================================
Found a 214 line (326 tokens) duplication in the following files:
Starting at line 172 of /usr/local/java/src/java/nio/DirectCharBufferRS.java
Starting at line 172 of /usr/local/java/src/java/nio/DirectCharBufferRU.java
return new DirectCharBufferRU(this,
this.markValue(),
this.position(),
this.limit(),
this.capacity(),
0);
}
public CharBuffer asReadOnlyBuffer() {
return duplicate();
}
public CharBuffer put(char x) {
throw new ReadOnlyBufferException();
}
public CharBuffer put(int i, char x) {
throw new ReadOnlyBufferException();
}
public CharBuffer put(CharBuffer src) {
throw new ReadOnlyBufferException();
}
public CharBuffer put(char[] src, int offset, int length) {
throw new ReadOnlyBufferException();
}
public CharBuffer compact() {
throw new ReadOnlyBufferException();
}
public boolean isDirect() {
return true;
}
public boolean isReadOnly() {
return true;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = (pos + start) << 1;
return new DirectCharBufferRU(this, -1, 0, sublen, sublen, off);
=====================================================================
Found a 87 line (299 tokens) duplication in the following files:
Starting at line 1259 of /usr/local/java/src/java/awt/geom/CubicCurve2D.java
Starting at line 929 of /usr/local/java/src/java/awt/geom/QuadCurve2D.java
vals[j++] = c1*u*u + 2*ctrl*t*u + c2*t*t;
}
}
return j;
}
private static final int BELOW = -2;
private static final int LOWEDGE = -1;
private static final int INSIDE = 0;
private static final int HIGHEDGE = 1;
private static final int ABOVE = 2;
/*
* Determine where coord lies with respect to the range from
* low to high. It is assumed that low <= high. The return
* value is one of the 5 values BELOW, LOWEDGE, INSIDE, HIGHEDGE,
* or ABOVE.
*/
private static int getTag(double coord, double low, double high) {
if (coord <= low) {
return (coord < low ? BELOW : LOWEDGE);
}
if (coord >= high) {
return (coord > high ? ABOVE : HIGHEDGE);
}
return INSIDE;
}
/*
* Determine if the pttag represents a coordinate that is already
* in its test range, or is on the border with either of the two
* opttags representing another coordinate that is "towards the
* inside" of that test range. In other words, are either of the
* two "opt" points "drawing the pt inward"?
*/
private static boolean inwards(int pttag, int opt1tag, int opt2tag) {
switch (pttag) {
case BELOW:
case ABOVE:
default:
return false;
case LOWEDGE:
return (opt1tag >= INSIDE || opt2tag >= INSIDE);
case INSIDE:
return true;
case HIGHEDGE:
return (opt1tag <= INSIDE || opt2tag <= INSIDE);
}
}
/**
* Tests if the shape of this QuadCurve2D intersects the
* interior of a specified set of rectangular coordinates.
* @param x, y the coordinates of the upper-left corner of the
* specified rectangular area
* @param w the width of the specified rectangular area
* @param h the height of the specified rectangular area
* @return true if the shape of this
* QuadCurve2D intersects the interior of the
* specified set of rectangular coordinates;
* false otherwise.
*/
public boolean intersects(double x, double y, double w, double h) {
// Trivially reject non-existant rectangles
if (w < 0 || h < 0) {
return false;
}
// Trivially accept if either endpoint is inside the rectangle
// (not on its border since it may end there and not go inside)
// Record where they lie with respect to the rectangle.
// -1 => left, 0 => inside, 1 => right
double x1 = getX1();
double y1 = getY1();
int x1tag = getTag(x1, x, x+w);
int y1tag = getTag(y1, y, y+h);
if (x1tag == INSIDE && y1tag == INSIDE) {
return true;
}
double x2 = getX2();
double y2 = getY2();
int x2tag = getTag(x2, x, x+w);
int y2tag = getTag(y2, y, y+h);
if (x2tag == INSIDE && y2tag == INSIDE) {
return true;
}
double ctrlx = getCtrlX();
=====================================================================
Found a 117 line (298 tokens) duplication in the following files:
Starting at line 64 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferRB.java
Starting at line 64 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferRL.java
return new ByteBufferAsCharBufferRL(bb,
this.markValue(),
this.position(),
this.limit(),
this.capacity(),
offset);
}
public CharBuffer asReadOnlyBuffer() {
return duplicate();
}
public CharBuffer put(char x) {
throw new ReadOnlyBufferException();
}
public CharBuffer put(int i, char x) {
throw new ReadOnlyBufferException();
}
public CharBuffer compact() {
throw new ReadOnlyBufferException();
}
public boolean isDirect() {
return bb.isDirect();
}
public boolean isReadOnly() {
return true;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
return new ByteBufferAsCharBufferRL(bb, -1, 0, sublen, sublen, off);
=====================================================================
Found a 40 line (281 tokens) duplication in the following files:
Starting at line 420 of /usr/local/java/src/java/io/FilePermission.java
Starting at line 235 of /usr/local/java/src/java/util/PropertyPermission.java
}
char[] a = actions.toCharArray();
int i = a.length - 1;
if (i < 0)
return mask;
while (i != -1) {
char c;
// skip whitespace
while ((i!=-1) && ((c = a[i]) == ' ' ||
c == '\r' ||
c == '\n' ||
c == '\f' ||
c == '\t'))
i--;
// check for the known strings
int matchlen;
if (i >= 3 && (a[i-3] == 'r' || a[i-3] == 'R') &&
(a[i-2] == 'e' || a[i-2] == 'E') &&
(a[i-1] == 'a' || a[i-1] == 'A') &&
(a[i] == 'd' || a[i] == 'D'))
{
matchlen = 4;
mask |= READ;
} else if (i >= 4 && (a[i-4] == 'w' || a[i-4] == 'W') &&
(a[i-3] == 'r' || a[i-3] == 'R') &&
(a[i-2] == 'i' || a[i-2] == 'I') &&
(a[i-1] == 't' || a[i-1] == 'T') &&
(a[i] == 'e' || a[i] == 'E'))
{
matchlen = 5;
mask |= WRITE;
} else {
=====================================================================
Found a 156 line (272 tokens) duplication in the following files:
Starting at line 939 of /usr/local/java/src/java/net/Socket.java
Starting at line 800 of /usr/local/java/src/java/net/DatagramSocket.java
Object o = getImpl().getOption(SocketOptions.SO_TIMEOUT);
/* extra type safety */
if (o instanceof Integer) {
return ((Integer) o).intValue();
} else {
return 0;
}
}
/**
* Sets the SO_SNDBUF option to the specified value for this
* DatagramSocket. The SO_SNDBUF option is used by the
* network implementation as a hint to size the underlying
* network I/O buffers. The SO_SNDBUF setting may also be used
* by the network implementation to determine the maximum size
* of the packet that can be sent on this socket.
*
* As SO_SNDBUF is a hint, applications that want to verify * what size the buffer is should call {@link #getSendBufferSize()}. *
* Increasing the buffer size may allow multiple outgoing packets * to be queued by the network implementation when the send rate * is high. *
* Note: If {@link #send()} is used to send a
* DatagramPacket that is larger than the setting
* of SO_SNDBUF then it is implementation specific if the
* packet is sent or discarded.
*
* @param size the size to which to set the send buffer
* size. This value must be greater than 0.
*
* @exception SocketException if there is an error
* in the underlying protocol, such as an UDP error.
* @exception IllegalArgumentException if the value is 0 or is
* negative.
* @see #getSendBufferSize()
*/
public synchronized void setSendBufferSize(int size)
throws SocketException{
if (!(size > 0)) {
throw new IllegalArgumentException("negative send size");
}
if (isClosed())
throw new SocketException("Socket is closed");
getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size));
}
/**
* Get value of the SO_SNDBUF option for this DatagramSocket, that is the
* buffer size used by the platform for output on this DatagramSocket.
*
* @return the value of the SO_SNDBUF option for this DatagramSocket
* @exception SocketException if there is an error in
* the underlying protocol, such as an UDP error.
* @see #setSendBufferSize
*/
public synchronized int getSendBufferSize() throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
int result = 0;
Object o = getImpl().getOption(SocketOptions.SO_SNDBUF);
if (o instanceof Integer) {
result = ((Integer)o).intValue();
}
return result;
}
/**
* Sets the SO_RCVBUF option to the specified value for this
* DatagramSocket. The SO_RCVBUF option is used by the
* the network implementation as a hint to size the underlying
* network I/O buffers. The SO_RCVBUF setting may also be used
* by the network implementation to determine the maximum size
* of the packet that can be received on this socket.
*
* Because SO_RCVBUF is a hint, applications that want to * verify what size the buffers were set to should call * {@link #getReceiveBufferSize()}. *
* Increasing SO_RCVBUF may allow the network implementation * to buffer multiple packets when packets arrive faster than * are being received using {@link #receive()}. *
* Note: It is implementation specific if a packet larger * than SO_RCVBUF can be received. * * @param size the size to which to set the receive buffer * size. This value must be greater than 0. * * @exception SocketException if there is an error in * the underlying protocol, such as an UDP error. * @exception IllegalArgumentException if the value is 0 or is * negative. * @see #getReceiveBufferSize() */ public synchronized void setReceiveBufferSize(int size) throws SocketException{ if (size <= 0) { throw new IllegalArgumentException("invalid receive size"); } if (isClosed()) throw new SocketException("Socket is closed"); getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size)); } /** * Get value of the SO_RCVBUF option for this DatagramSocket, that is the * buffer size used by the platform for input on this DatagramSocket. * * @return the value of the SO_RCVBUF option for this DatagramSocket * @exception SocketException if there is an error in the underlying protocol, such as an UDP error. * @see #setReceiveBufferSize(int) */ public synchronized int getReceiveBufferSize() throws SocketException{ if (isClosed()) throw new SocketException("Socket is closed"); int result = 0; Object o = getImpl().getOption(SocketOptions.SO_RCVBUF); if (o instanceof Integer) { result = ((Integer)o).intValue(); } return result; } /** * Enable/disable the SO_REUSEADDR socket option. *
* For UDP sockets it may be necessary to bind more than one * socket to the same socket address. This is typically for the * purpose of receiving multicast packets * (See {@link #java.net.MulticastSocket}). The * SO_REUSEADDR socket option allows multiple * sockets to be bound to the same socket address if the * SO_REUSEADDR socket option is enabled prior * to binding the socket using {@link #bind(SocketAddress)}. *
* When a DatagramSocket is created the initial setting * of SO_REUSEADDR is disabled. *
* The behaviour when SO_REUSEADDR is enabled or
* disabled after a socket is bound (See {@link #isBound()})
* is not defined.
*
* @param on whether to enable or disable the
* @exception SocketException if an error occurs enabling or
* disabling the SO_RESUEADDR socket option,
* or the socket is closed.
* @since 1.4
* @see #getReuseAddress()
* @see #bind(SocketAddress)
* @see #isBound()
* @see #isClosed()
*/
public synchronized void setReuseAddress(boolean on) throws SocketException {
=====================================================================
Found a 8 line (254 tokens) duplication in the following files:
Starting at line 611 of /usr/local/java/src/java/util/BitSet.java
Starting at line 619 of /usr/local/java/src/java/util/BitSet.java
7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0};
=====================================================================
Found a 181 line (248 tokens) duplication in the following files:
Starting at line 456 of /usr/local/java/src/java/awt/Choice.java
Starting at line 388 of /usr/local/java/src/java/awt/Checkbox.java
oldGroup.setSelectedCheckbox(null);
}
}
/**
* Adds the specified item listener to receive item events from
* this check box. Item events are sent to listeners in response
* to user input, but not in response to calls to setState().
* If l is null, no exception is thrown and no action is performed.
*
* @param l the item listener
* @see #removeItemListener
* @see #getItemListeners
* @see #setState
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since JDK1.1
*/
public synchronized void addItemListener(ItemListener l) {
if (l == null) {
return;
}
itemListener = AWTEventMulticaster.add(itemListener, l);
newEventsOnly = true;
}
/**
* Removes the specified item listener so that the item listener
* no longer receives item events from this check box.
* If l is null, no exception is thrown and no action is performed.
*
* @param l the item listener
* @see #addItemListener
* @see #getItemListeners
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since JDK1.1
*/
public synchronized void removeItemListener(ItemListener l) {
if (l == null) {
return;
}
itemListener = AWTEventMulticaster.remove(itemListener, l);
}
/**
* Returns an array of all the item listeners
* registered on this checkbox.
*
* @return all of this checkbox's ItemListeners
* or an empty array if no item
* listeners are currently registered
*
* @see #addItemListener
* @see #removeItemListener
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since 1.4
*/
public synchronized ItemListener[] getItemListeners() {
return (ItemListener[]) (getListeners(ItemListener.class));
}
/**
* Returns an array of all the objects currently registered
* as FooListeners
* upon this Checkbox.
* FooListeners are registered using the
* addFooListener method.
*
*
* You can specify the listenerType argument
* with a class literal, such as
* FooListener.class.
* For example, you can query a
* Checkbox c
* for its item listeners with the following code:
*
*
ItemListener[] ils = (ItemListener[])(c.getListeners(ItemListener.class));* * If no such listeners exist, this method returns an empty array. * * @param listenerType the type of listeners requested; this parameter * should specify an interface that descends from *
java.util.EventListener
* @return an array of all objects registered as
* FooListeners on this checkbox,
* or an empty array if no such
* listeners have been added
* @exception ClassCastException if listenerType
* doesn't specify a class or interface that implements
* java.util.EventListener
*
* @see #getItemListeners
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType) {
EventListener l = null;
if (listenerType == ItemListener.class) {
l = itemListener;
} else {
return super.getListeners(listenerType);
}
return AWTEventMulticaster.getListeners(l, listenerType);
}
// REMIND: remove when filtering is done at lower level
boolean eventEnabled(AWTEvent e) {
if (e.id == ItemEvent.ITEM_STATE_CHANGED) {
if ((eventMask & AWTEvent.ITEM_EVENT_MASK) != 0 ||
itemListener != null) {
return true;
}
return false;
}
return super.eventEnabled(e);
}
/**
* Processes events on this check box.
* If the event is an instance of ItemEvent,
* this method invokes the processItemEvent method.
* Otherwise, it calls its superclass's processEvent method.
* Note that if the event parameter is null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the event
* @see java.awt.event.ItemEvent
* @see #processItemEvent
* @since JDK1.1
*/
protected void processEvent(AWTEvent e) {
if (e instanceof ItemEvent) {
processItemEvent((ItemEvent)e);
return;
}
super.processEvent(e);
}
/**
* Processes item events occurring on this check box by
* dispatching them to any registered
* ItemListener objects.
*
* This method is not called unless item events are * enabled for this component. Item events are enabled * when one of the following occurs: *
ItemListener object is registered
* via addItemListener.
* enableEvents.
* Note that if the event parameter is null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the item event
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @see #addItemListener
* @see java.awt.Component#enableEvents
* @since JDK1.1
*/
protected void processItemEvent(ItemEvent e) {
ItemListener listener = itemListener;
if (listener != null) {
listener.itemStateChanged(e);
}
}
/**
* Returns a string representing the state of this Checkbox.
* This method is intended to be used only for debugging purposes, and the
* content and format of the returned string may vary between
* implementations. The returned string may be empty but may not be
* null.
*
* @return the parameter string of this check box
*/
protected String paramString() {
=====================================================================
Found a 175 line (246 tokens) duplication in the following files:
Starting at line 413 of /usr/local/java/src/java/awt/TextField.java
Starting at line 221 of /usr/local/java/src/java/awt/Button.java
}
/**
* Adds the specified action listener to receive action events from
* this button. Action events occur when a user presses or releases
* the mouse over this button.
* If l is null, no exception is thrown and no action is performed.
*
* @param l the action listener
* @see #removeActionListener
* @see #getActionListeners
* @see java.awt.event.ActionListener
* @since JDK1.1
*/
public synchronized void addActionListener(ActionListener l) {
if (l == null) {
return;
}
actionListener = AWTEventMulticaster.add(actionListener, l);
newEventsOnly = true;
}
/**
* Removes the specified action listener so that it no longer
* receives action events from this button. Action events occur
* when a user presses or releases the mouse over this button.
* If l is null, no exception is thrown and no action is performed.
*
* @param l the action listener
* @see #addActionListener
* @see #getActionListeners
* @see java.awt.event.ActionListener
* @since JDK1.1
*/
public synchronized void removeActionListener(ActionListener l) {
if (l == null) {
return;
}
actionListener = AWTEventMulticaster.remove(actionListener, l);
}
/**
* Returns an array of all the action listeners
* registered on this button.
*
* @return all of this button's ActionListeners
* or an empty array if no action
* listeners are currently registered
*
* @see #addActionListener
* @see #removeActionListener
* @see java.awt.event.ActionListener
* @since 1.4
*/
public synchronized ActionListener[] getActionListeners() {
return (ActionListener[]) (getListeners(ActionListener.class));
}
/**
* Returns an array of all the objects currently registered
* as FooListeners
* upon this Button.
* FooListeners are registered using the
* addFooListener method.
*
*
* You can specify the listenerType argument
* with a class literal, such as
* FooListener.class.
* For example, you can query a
* Button b
* for its action listeners with the following code:
*
*
ActionListener[] als = (ActionListener[])(b.getListeners(ActionListener.class));* * If no such listeners exist, this method returns an empty array. * * @param listenerType the type of listeners requested; this parameter * should specify an interface that descends from *
java.util.EventListener
* @return an array of all objects registered as
* FooListeners on this button,
* or an empty array if no such
* listeners have been added
* @exception ClassCastException if listenerType
* doesn't specify a class or interface that implements
* java.util.EventListener
*
* @see #getActionListeners
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType) {
EventListener l = null;
if (listenerType == ActionListener.class) {
l = actionListener;
} else {
return super.getListeners(listenerType);
}
return AWTEventMulticaster.getListeners(l, listenerType);
}
// REMIND: remove when filtering is done at lower level
boolean eventEnabled(AWTEvent e) {
if (e.id == ActionEvent.ACTION_PERFORMED) {
if ((eventMask & AWTEvent.ACTION_EVENT_MASK) != 0 ||
actionListener != null) {
return true;
}
return false;
}
return super.eventEnabled(e);
}
/**
* Processes events on this button. If an event is
* an instance of ActionEvent, this method invokes
* the processActionEvent method. Otherwise,
* it invokes processEvent on the superclass.
* Note that if the event parameter is null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the event
* @see java.awt.event.ActionEvent
* @see java.awt.Button#processActionEvent
* @since JDK1.1
*/
protected void processEvent(AWTEvent e) {
if (e instanceof ActionEvent) {
processActionEvent((ActionEvent)e);
return;
}
super.processEvent(e);
}
/**
* Processes action events occurring on this button
* by dispatching them to any registered
* ActionListener objects.
*
* This method is not called unless action events are * enabled for this button. Action events are enabled * when one of the following occurs: *
ActionListener object is registered
* via addActionListener.
* enableEvents.
* Note that if the event parameter is null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the action event
* @see java.awt.event.ActionListener
* @see java.awt.Button#addActionListener
* @see java.awt.Component#enableEvents
* @since JDK1.1
*/
protected void processActionEvent(ActionEvent e) {
ActionListener listener = actionListener;
if (listener != null) {
listener.actionPerformed(e);
}
}
/**
* Returns a string representing the state of this Button.
* This method is intended to be used only for debugging purposes, and the
* content and format of the returned string may vary between
* implementations. The returned string may be empty but may not be
* null.
*
* @return the parameter string of this button
*/
protected String paramString() {
=====================================================================
Found a 39 line (244 tokens) duplication in the following files:
Starting at line 381 of /usr/local/java/src/java/lang/Package.java
Starting at line 276 of /usr/local/java/src/java/net/URLClassLoader.java
URL sealBase = null;
Attributes attr = man.getAttributes(path);
if (attr != null) {
specTitle = attr.getValue(Name.SPECIFICATION_TITLE);
specVersion = attr.getValue(Name.SPECIFICATION_VERSION);
specVendor = attr.getValue(Name.SPECIFICATION_VENDOR);
implTitle = attr.getValue(Name.IMPLEMENTATION_TITLE);
implVersion = attr.getValue(Name.IMPLEMENTATION_VERSION);
implVendor = attr.getValue(Name.IMPLEMENTATION_VENDOR);
sealed = attr.getValue(Name.SEALED);
}
attr = man.getMainAttributes();
if (attr != null) {
if (specTitle == null) {
specTitle = attr.getValue(Name.SPECIFICATION_TITLE);
}
if (specVersion == null) {
specVersion = attr.getValue(Name.SPECIFICATION_VERSION);
}
if (specVendor == null) {
specVendor = attr.getValue(Name.SPECIFICATION_VENDOR);
}
if (implTitle == null) {
implTitle = attr.getValue(Name.IMPLEMENTATION_TITLE);
}
if (implVersion == null) {
implVersion = attr.getValue(Name.IMPLEMENTATION_VERSION);
}
if (implVendor == null) {
implVendor = attr.getValue(Name.IMPLEMENTATION_VENDOR);
}
if (sealed == null) {
sealed = attr.getValue(Name.SEALED);
}
}
if ("true".equalsIgnoreCase(sealed)) {
sealBase = url;
}
=====================================================================
Found a 31 line (242 tokens) duplication in the following files:
Starting at line 257 of /usr/local/java/src/java/text/CharacterBreakData.java
Starting at line 287 of /usr/local/java/src/java/text/CharacterBreakData.java
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// ctrl ctrl ctrl ctrl ctrl ctrl ctrl ctrl
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// ctrl ctrl ctrl ctrl ctrl ctrl ctrl ctrl
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// ctrl ctrl ctrl ctrl ctrl ctrl ctrl ctrl
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// nbsp inv-! cents pounds currency yen broken-bar section
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// umlaut copyright super-a gui-left not soft-hyph registered macron
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// degree +/- super-2 super-3 acute micro paragraph bullet
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// cedilla super-1 super-o gui-right 1/4 1/2 3/4 inv-?
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// A-grave A-acute A-hat A-tilde A-umlaut A-ring AE C-cedilla
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// E-grave E-acute E-hat E-umlaut I-grave I-acute I-hat I-umlaut
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// Edh N-tilde O-grave O-acute O-hat O-tilde O-umlaut times
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// O-slash U-grave U-acute U-hat U-umlaut Y-acute Thorn ess-zed
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// a-grave a-acute a-hat a-tilde a-umlaut a-ring ae c-cedilla
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// e-grave e-acute e-hat e-umlaut i-grave i-acute i-hat i-umlaut
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// edh n-tilde o-grave o-acute o-hat o-tilde o-umlaut over
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm,
// o-slash u-grave u-acute u-hat u-umlaut y-acute thorn y-umlaut
baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm, baseForm
=====================================================================
Found a 170 line (240 tokens) duplication in the following files:
Starting at line 458 of /usr/local/java/src/java/awt/Choice.java
Starting at line 193 of /usr/local/java/src/java/awt/CheckboxMenuItem.java
}
/**
* Adds the specified item listener to receive item events from
* this check box menu item. Item events are sent in response to user
* actions, but not in response to calls to setState().
* If l is null, no exception is thrown and no action is performed.
*
* @param l the item listener
* @see #removeItemListener
* @see #getItemListeners
* @see #setState
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since JDK1.1
*/
public synchronized void addItemListener(ItemListener l) {
if (l == null) {
return;
}
itemListener = AWTEventMulticaster.add(itemListener, l);
newEventsOnly = true;
}
/**
* Removes the specified item listener so that it no longer receives
* item events from this check box menu item.
* If l is null, no exception is thrown and no action is performed.
*
* @param l the item listener
* @see #addItemListener
* @see #getItemListeners
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since JDK1.1
*/
public synchronized void removeItemListener(ItemListener l) {
if (l == null) {
return;
}
itemListener = AWTEventMulticaster.remove(itemListener, l);
}
/**
* Returns an array of all the item listeners
* registered on this checkbox menuitem.
*
* @return all of this checkbox menuitem's ItemListeners
* or an empty array if no item
* listeners are currently registered
*
* @see #addItemListener
* @see #removeItemListener
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @since 1.4
*/
public synchronized ItemListener[] getItemListeners() {
return (ItemListener[])(getListeners(ItemListener.class));
}
/**
* Returns an array of all the objects currently registered
* as FooListeners
* upon this CheckboxMenuItem.
* FooListeners are registered using the
* addFooListener method.
*
*
* You can specify the listenerType argument
* with a class literal, such as
* FooListener.class.
* For example, you can query a
* CheckboxMenuItem c
* for its item listeners with the following code:
*
*
ItemListener[] ils = (ItemListener[])(c.getListeners(ItemListener.class));* * If no such listeners exist, this method returns an empty array. * * @param listenerType the type of listeners requested; this parameter * should specify an interface that descends from *
java.util.EventListener
* @return an array of all objects registered as
* FooListeners on this checkbox menuitem,
* or an empty array if no such
* listeners have been added
* @exception ClassCastException if listenerType
* doesn't specify a class or interface that implements
* java.util.EventListener
*
* @see #getItemListeners
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType) {
EventListener l = null;
if (listenerType == ItemListener.class) {
l = itemListener;
} else {
return super.getListeners(listenerType);
}
return AWTEventMulticaster.getListeners(l, listenerType);
}
// REMIND: remove when filtering is done at lower level
boolean eventEnabled(AWTEvent e) {
if (e.id == ItemEvent.ITEM_STATE_CHANGED) {
if ((eventMask & AWTEvent.ITEM_EVENT_MASK) != 0 ||
itemListener != null) {
return true;
}
return false;
}
return super.eventEnabled(e);
}
/**
* Processes events on this check box menu item.
* If the event is an instance of ItemEvent,
* this method invokes the processItemEvent method.
* If the event is not an item event,
* it invokes processEvent on the superclass.
* * Check box menu items currently support only item events. *
Note that if the event parameter is null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the event
* @see java.awt.event.ItemEvent
* @see #processItemEvent
* @since JDK1.1
*/
protected void processEvent(AWTEvent e) {
if (e instanceof ItemEvent) {
processItemEvent((ItemEvent)e);
return;
}
super.processEvent(e);
}
/**
* Processes item events occurring on this check box menu item by
* dispatching them to any registered ItemListener objects.
*
* This method is not called unless item events are * enabled for this menu item. Item events are enabled * when one of the following occurs: *
ItemListener object is registered
* via addItemListener.
* enableEvents.
* Note that if the event parameter is
* The
* The null
* the behavior is unspecified and may result in an
* exception.
*
* @param e the item event
* @see java.awt.event.ItemEvent
* @see java.awt.event.ItemListener
* @see #addItemListener
* @see java.awt.MenuItem#enableEvents
* @since JDK1.1
*/
protected void processItemEvent(ItemEvent e) {
ItemListener listener = itemListener;
if (listener != null) {
listener.itemStateChanged(e);
}
}
=====================================================================
Found a 36 line (229 tokens) duplication in the following files:
Starting at line 495 of /usr/local/java/src/java/util/Arrays.java
Starting at line 578 of /usr/local/java/src/java/util/Arrays.java
Starting at line 661 of /usr/local/java/src/java/util/Arrays.java
Starting at line 745 of /usr/local/java/src/java/util/Arrays.java
Starting at line 829 of /usr/local/java/src/java/util/Arrays.java
Starting at line 913 of /usr/local/java/src/java/util/Arrays.java
Starting at line 997 of /usr/local/java/src/java/util/Arrays.java
float v = x[m];
// Establish Invariant: v* (len bytes of data from this input stream
* into an array of bytes. This method blocks until some input is available.
* read method of
* LineNumberInputStream repeatedly calls the
* read method of zero arguments to fill in the byte array.
*
* @param b the buffer into which the data is read.
* @param off the start offset of the data.
* @param len the maximum number of bytes read.
* @return the total number of bytes read into the buffer, or
* -1 if there is no more data because the end of
* this stream has been reached.
* @exception IOException if an I/O error occurs.
* @see java.io.LineNumberInputStream#read()
*/
public int read(byte b[], int off, int len) throws IOException {
if (b == null) {
throw new NullPointerException();
} else if ((off < 0) || (off > b.length) || (len < 0) ||
((off + len) > b.length) || ((off + len) < 0)) {
throw new IndexOutOfBoundsException();
} else if (len == 0) {
return 0;
}
int c = read();
if (c == -1) {
return -1;
}
b[off] = (byte)c;
int i = 1;
try {
for (; i < len ; i++) {
c = read();
if (c == -1) {
break;
}
if (b != null) {
b[off + i] = (byte)c;
}
}
} catch (IOException ee) {
}
return i;
}
/**
* Skips over and discards n bytes of data from this
* input stream. The skip method may, for a variety of
* reasons, end up skipping over some smaller number of bytes,
* possibly 0. The actual number of bytes skipped is
* returned. If n is negative, no bytes are skipped.
* skip method of LineNumberInputStream creates
* a byte array and then repeatedly reads into it until
* n bytes have been read or the end of the stream has
* been reached.
*
* @param n the number of bytes to be skipped.
* @return the actual number of bytes skipped.
* @exception IOException if an I/O error occurs.
* @see java.io.FilterInputStream#in
*/
public long skip(long n) throws IOException {
=====================================================================
Found a 61 line (193 tokens) duplication in the following files:
Starting at line 1444 of /usr/local/java/src/java/awt/geom/CubicCurve2D.java
Starting at line 1094 of /usr/local/java/src/java/awt/geom/QuadCurve2D.java
y1, ctrly, y2) == 2 &&
getTag(res[0], y, y+h) * getTag(res[1], y, y+h) <= 0);
}
// The X and Y ranges of the endpoints overlap the X and Y
// ranges of the rectangle, now find out how the endpoint
// line segment intersects the Y range of the rectangle
double dx = x2 - x1;
double dy = y2 - y1;
double k = y2 * x1 - x2 * y1;
int c1tag, c2tag;
if (y1tag == INSIDE) {
c1tag = x1tag;
} else {
c1tag = getTag((k + dx * (y1tag < INSIDE ? y : y+h)) / dy, x, x+w);
}
if (y2tag == INSIDE) {
c2tag = x2tag;
} else {
c2tag = getTag((k + dx * (y2tag < INSIDE ? y : y+h)) / dy, x, x+w);
}
// If the part of the line segment that intersects the Y range
// of the rectangle crosses it horizontally - trivially accept
if (c1tag * c2tag <= 0) {
return true;
}
// Now we know that both the X and Y ranges intersect and that
// the endpoint line segment does not directly cross the rectangle.
//
// We can almost treat this case like one of the cases above
// where both endpoints are to one side, except that we will
// only get one intersection of the curve with the vertical
// side of the rectangle. This is because the endpoint segment
// accounts for the other intersection.
//
// (Remember there is overlap in both the X and Y ranges which
// means that the segment must cross at least one vertical edge
// of the rectangle - in particular, the "near vertical side" -
// leaving only one intersection for the curve.)
//
// Now we calculate the y tags of the two intersections on the
// "near vertical side" of the rectangle. We will have one with
// the endpoint segment, and one with the curve. If those two
// vertical intersections overlap the Y range of the rectangle,
// we have an intersection. Otherwise, we don't.
// c1tag = vertical intersection class of the endpoint segment
//
// Choose the y tag of the endpoint that was not on the same
// side of the rectangle as the subsegment calculated above.
// Note that we can "steal" the existing Y tag of that endpoint
// since it will be provably the same as the vertical intersection.
c1tag = ((c1tag * x1tag <= 0) ? y1tag : y2tag);
// c2tag = vertical intersection class of the curve
//
// We have to calculate this one the straightforward way.
// Note that the c2tag can still tell us which vertical edge
// to test against.
fillEqn(eqn, (c2tag < INSIDE ? x : x+w), x1, ctrlx, x2);
=====================================================================
Found a 35 line (193 tokens) duplication in the following files:
Starting at line 146 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferB.java
Starting at line 146 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferRB.java
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
return new ByteBufferAsCharBufferRB(bb, -1, 0, sublen, sublen, off);
=====================================================================
Found a 44 line (191 tokens) duplication in the following files:
Starting at line 132 of /usr/local/java/src/java/awt/image/LookupOp.java
Starting at line 336 of /usr/local/java/src/java/awt/image/RescaleOp.java
int width = src.getWidth();
int height = src.getHeight();
if (dst == null) {
dst = createCompatibleDestImage(src, null);
dstCM = srcCM;
}
else {
if (width != dst.getWidth()) {
throw new
IllegalArgumentException("Src width ("+width+
") not equal to dst width ("+
dst.getWidth()+")");
}
if (height != dst.getHeight()) {
throw new
IllegalArgumentException("Src height ("+height+
") not equal to dst height ("+
dst.getHeight()+")");
}
dstCM = dst.getColorModel();
if(srcCM.getColorSpace().getType() !=
dstCM.getColorSpace().getType()) {
needToConvert = true;
dst = createCompatibleDestImage(src, null);
}
}
BufferedImage origDst = dst;
//
// Try to use a native BI rescale operation first
//
if (ImagingLib.filter(this, src, dst) == null) {
//
// Native BI rescale failed - convert to rasters
//
WritableRaster srcRaster = src.getRaster();
WritableRaster dstRaster = dst.getRaster();
if (srcCM.hasAlpha()) {
if (numBands-1 == length || length == 1) {
=====================================================================
Found a 37 line (191 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectShortBufferU.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectShortBufferS.java
return (Bits.swap(unsafe.getShort(ix(checkIndex(i)))));
}
public ShortBuffer get(short[] dst, int offset, int length) {
if ((length << 1) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToShortArray(ix(pos), dst,
offset << 1,
length << 1);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 1,
length << 1);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public ShortBuffer put(short x) {
unsafe.putShort(ix(nextPutIndex()), Bits.swap((x)));
=====================================================================
Found a 37 line (191 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectLongBufferU.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectLongBufferS.java
return (Bits.swap(unsafe.getLong(ix(checkIndex(i)))));
}
public LongBuffer get(long[] dst, int offset, int length) {
if ((length << 3) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToLongArray(ix(pos), dst,
offset << 3,
length << 3);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 3,
length << 3);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public LongBuffer put(long x) {
unsafe.putLong(ix(nextPutIndex()), Bits.swap((x)));
=====================================================================
Found a 37 line (191 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectIntBufferS.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectIntBufferU.java
return ((unsafe.getInt(ix(checkIndex(i)))));
}
public IntBuffer get(int[] dst, int offset, int length) {
if ((length << 2) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToIntArray(ix(pos), dst,
offset << 2,
length << 2);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 2,
length << 2);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public IntBuffer put(int x) {
unsafe.putInt(ix(nextPutIndex()), ((x)));
=====================================================================
Found a 37 line (191 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectCharBufferU.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectCharBufferS.java
return (Bits.swap(unsafe.getChar(ix(checkIndex(i)))));
}
public CharBuffer get(char[] dst, int offset, int length) {
if ((length << 1) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToCharArray(ix(pos), dst,
offset << 1,
length << 1);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 1,
length << 1);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public CharBuffer put(char x) {
unsafe.putChar(ix(nextPutIndex()), Bits.swap((x)));
=====================================================================
Found a 38 line (189 tokens) duplication in the following files:
Starting at line 346 of /usr/local/java/src/java/nio/DirectCharBufferRU.java
Starting at line 142 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferRB.java
}
public boolean isReadOnly() {
return true;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
=====================================================================
Found a 36 line (189 tokens) duplication in the following files:
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferS.java
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferRU.java
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = (pos + start) << 1;
return new DirectCharBufferRU(this, -1, 0, sublen, sublen, off);
=====================================================================
Found a 38 line (189 tokens) duplication in the following files:
Starting at line 346 of /usr/local/java/src/java/nio/DirectCharBufferS.java
Starting at line 142 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferB.java
}
public boolean isReadOnly() {
return false;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
=====================================================================
Found a 36 line (189 tokens) duplication in the following files:
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferU.java
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferRU.java
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = (pos + start) << 1;
return new DirectCharBufferRU(this, -1, 0, sublen, sublen, off);
=====================================================================
Found a 38 line (189 tokens) duplication in the following files:
Starting at line 346 of /usr/local/java/src/java/nio/DirectCharBufferU.java
Starting at line 142 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferB.java
}
public boolean isReadOnly() {
return false;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
=====================================================================
Found a 36 line (189 tokens) duplication in the following files:
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferRS.java
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferU.java
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = (pos + start) << 1;
return new DirectCharBufferU(this, -1, 0, sublen, sublen, off);
=====================================================================
Found a 38 line (189 tokens) duplication in the following files:
Starting at line 346 of /usr/local/java/src/java/nio/DirectCharBufferRS.java
Starting at line 142 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferRB.java
}
public boolean isReadOnly() {
return true;
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
=====================================================================
Found a 31 line (183 tokens) duplication in the following files:
Starting at line 262 of /usr/local/java/src/java/lang/CharacterData.java
Starting at line 157 of /usr/local/java/src/java/lang/CharacterDataLatin1.java
}
static int digit(char ch, int radix) {
int value = -1;
if (radix >= Character.MIN_RADIX && radix <= Character.MAX_RADIX) {
int val = getProperties(ch);
int kind = val & 0x1F;
if (kind == Character.DECIMAL_DIGIT_NUMBER) {
value = ch + ((val & 0x3E0) >> 5) & 0x1F;
}
else if ((val & 0xC00) == 0x00000C00) {
// Java supradecimal digit
value = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10;
}
}
return (value < radix) ? value : -1;
}
static int getNumericValue(char ch) {
int val = getProperties(ch);
int retval = -1;
switch (val & 0xC00) {
default: // cannot occur
case (0x00000000): // not numeric
retval = -1;
break;
case (0x00000400): // simple numeric
retval = ch + ((val & 0x3E0) >> 5) & 0x1F;
break;
case (0x00000800) : // "strange" numeric
=====================================================================
Found a 59 line (180 tokens) duplication in the following files:
Starting at line 150 of /usr/local/java/src/java/io/PipedReader.java
Starting at line 176 of /usr/local/java/src/java/io/PipedInputStream.java
receive(b[off++]);
}
}
/**
* Notifies all waiting threads that the last byte of data has been
* received.
*/
synchronized void receivedLast() {
closedByWriter = true;
notifyAll();
}
/**
* Reads the next byte of data from this piped input stream. The
* value byte is returned as an int in the range
* 0 to 255. If no byte is available
* because the end of the stream has been reached, the value
* -1 is returned. This method blocks until input data
* is available, the end of the stream is detected, or an exception
* is thrown.
* If a thread was providing data bytes
* to the connected piped output stream, but
* the thread is no longer alive, then an
* IOException is thrown.
*
* @return the next byte of data, or -1 if the end of the
* stream is reached.
* @exception IOException if the pipe is broken.
*/
public synchronized int read() throws IOException {
if (!connected) {
throw new IOException("Pipe not connected");
} else if (closedByReader) {
throw new IOException("Pipe closed");
} else if (writeSide != null && !writeSide.isAlive()
&& !closedByWriter && (in < 0)) {
throw new IOException("Write end dead");
}
readSide = Thread.currentThread();
int trials = 2;
while (in < 0) {
if (closedByWriter) {
/* closed by writer, return EOF */
return -1;
}
if ((writeSide != null) && (!writeSide.isAlive()) && (--trials < 0)) {
throw new IOException("Pipe broken");
}
/* might be a writer waiting */
notifyAll();
try {
wait(1000);
} catch (InterruptedException ex) {
throw new java.io.InterruptedIOException();
}
}
int ret = buffer[out++] & 0xFF;
=====================================================================
Found a 34 line (180 tokens) duplication in the following files:
Starting at line 350 of /usr/local/java/src/java/nio/DirectCharBufferRS.java
Starting at line 146 of /usr/local/java/src/java/nio/ByteBufferAsCharBufferL.java
}
public String toString(int start, int end) {
if ((end > limit()) || (start > end))
throw new IndexOutOfBoundsException();
try {
int len = end - start;
char[] ca = new char[len];
CharBuffer cb = CharBuffer.wrap(ca);
CharBuffer db = this.duplicate();
db.position(start);
db.limit(end);
cb.put(db);
return new String(ca);
} catch (StringIndexOutOfBoundsException x) {
throw new IndexOutOfBoundsException();
}
}
// --- Methods to support CharSequence ---
public CharSequence subSequence(int start, int end) {
int len = length();
int pos = position();
assert (pos <= len);
pos = (pos <= len ? pos : len);
if ((start < 0) || (end > len) || (start > end))
throw new IndexOutOfBoundsException();
int sublen = end - start;
int off = offset + ((pos + start) << 1);
=====================================================================
Found a 37 line (178 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectFloatBufferS.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectFloatBufferU.java
return ((unsafe.getFloat(ix(checkIndex(i)))));
}
public FloatBuffer get(float[] dst, int offset, int length) {
if ((length << 2) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToIntArray(ix(pos), dst,
offset << 2,
length << 2);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 2,
length << 2);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public FloatBuffer put(float x) {
unsafe.putFloat(ix(nextPutIndex()), ((x)));
=====================================================================
Found a 37 line (178 tokens) duplication in the following files:
Starting at line 208 of /usr/local/java/src/java/nio/DirectDoubleBufferS.java
Starting at line 208 of /usr/local/java/src/java/nio/DirectDoubleBufferU.java
return ((unsafe.getDouble(ix(checkIndex(i)))));
}
public DoubleBuffer get(double[] dst, int offset, int length) {
if ((length << 3) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
checkBounds(offset, length, dst.length);
int pos = position();
int lim = limit();
assert (pos <= lim);
int rem = (pos <= lim ? lim - pos : 0);
if (length > rem)
throw new BufferUnderflowException();
if (order() != ByteOrder.nativeOrder())
Bits.copyToLongArray(ix(pos), dst,
offset << 3,
length << 3);
else
Bits.copyToByteArray(ix(pos), dst,
offset << 3,
length << 3);
position(pos + length);
} else {
super.get(dst, offset, length);
}
return this;
}
public DoubleBuffer put(double x) {
unsafe.putDouble(ix(nextPutIndex()), ((x)));
=====================================================================
Found a 56 line (177 tokens) duplication in the following files:
Starting at line 388 of /usr/local/java/src/java/lang/Long.java
Starting at line 462 of /usr/local/java/src/java/lang/Integer.java
limit = -Integer.MAX_VALUE;
}
multmin = limit / radix;
if (i < max) {
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0) {
throw NumberFormatException.forInputString(s);
} else {
result = -digit;
}
}
while (i < max) {
// Accumulating negatively avoids surprises near MAX_VALUE
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0) {
throw NumberFormatException.forInputString(s);
}
if (result < multmin) {
throw NumberFormatException.forInputString(s);
}
result *= radix;
if (result < limit + digit) {
throw NumberFormatException.forInputString(s);
}
result -= digit;
}
} else {
throw NumberFormatException.forInputString(s);
}
if (negative) {
if (i > 1) {
return result;
} else { /* Only got "-" */
throw NumberFormatException.forInputString(s);
}
} else {
return -result;
}
}
/**
* Parses the string argument as a signed decimal integer. The
* characters in the string must all be decimal digits, except that
* the first character may be an ASCII minus sign '-'
* ('\u002D') to indicate a negative value. The resulting
* integer value is returned, exactly as if the argument and the radix
* 10 were given as arguments to the
* {@link #parseInt(java.lang.String, int)} method.
*
* @param s a String containing the int
* representation to be parsed
* @return the integer value represented by the argument in decimal.
* @exception NumberFormatException if the string does not contain a
* parsable integer.
*/
public static int parseInt(String s) throws NumberFormatException {
=====================================================================
Found a 22 line (177 tokens) duplication in the following files:
Starting at line 473 of /usr/local/java/src/java/util/Arrays.java
Starting at line 556 of /usr/local/java/src/java/util/Arrays.java
Starting at line 639 of /usr/local/java/src/java/util/Arrays.java
Starting at line 723 of /usr/local/java/src/java/util/Arrays.java
Starting at line 807 of /usr/local/java/src/java/util/Arrays.java
Starting at line 891 of /usr/local/java/src/java/util/Arrays.java
Starting at line 975 of /usr/local/java/src/java/util/Arrays.java
private static void sort1(float x[], int off, int len) {
// Insertion sort on smallest arrays
if (len < 7) {
for (int i=off; iURL is followed by an
* int indicating the number of certificates to follow
* (a value of "zero" denotes that there are no certificates associated
* with this object).
* Each certificate is written out starting with a String
* denoting the certificate type, followed by an
* int specifying the length of the certificate encoding,
* followed by the certificate encoding itself which is written out as an
* array of bytes.
*/
private synchronized void writeObject(java.io.ObjectOutputStream oos)
throws IOException
{
oos.defaultWriteObject();
if (certs==null || certs.length==0) {
oos.writeInt(0);
} else {
// write out the total number of certs
oos.writeInt(certs.length);
// write out each cert, including its type
for (int i=0; i < certs.length; i++) {
java.security.cert.Certificate cert = certs[i];
try {
oos.writeUTF(cert.getType());
byte[] encoded = cert.getEncoded();
oos.writeInt(encoded.length);
oos.write(encoded);
} catch (CertificateEncodingException cee) {
throw new IOException(cee.getMessage());
}
}
}
}
/**
* Restores this object from a stream (i.e., deserializes it).
*/
private synchronized void readObject(java.io.ObjectInputStream ois)
throws IOException, ClassNotFoundException
{
CertificateFactory cf;
Hashtable cfs=null;
ois.defaultReadObject();
=====================================================================
Found a 54 line (164 tokens) duplication in the following files:
Starting at line 138 of /usr/local/java/src/java/util/zip/Deflater.java
Starting at line 86 of /usr/local/java/src/java/util/zip/Inflater.java
this(false);
}
/**
* Sets input data for decompression. Should be called whenever
* needsInput() returns true indicating that more input data is
* required.
* @param b the input data bytes
* @param off the start offset of the input data
* @param len the length of the input data
* @see Inflater#needsInput
*/
public synchronized void setInput(byte[] b, int off, int len) {
if (b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
this.buf = b;
this.off = off;
this.len = len;
}
/**
* Sets input data for decompression. Should be called whenever
* needsInput() returns true indicating that more input data is
* required.
* @param b the input data bytes
* @see Inflater#needsInput
*/
public void setInput(byte[] b) {
setInput(b, 0, b.length);
}
/**
* Sets the preset dictionary to the given array of bytes. Should be
* called when inflate() returns 0 and needsDictionary() returns true
* indicating that a preset dictionary is required. The method getAdler()
* can be used to get the Adler-32 value of the dictionary needed.
* @param b the dictionary data bytes
* @param off the start offset of the data
* @param len the length of the data
* @see Inflater#needsDictionary
* @see Inflater#getAdler
*/
public synchronized void setDictionary(byte[] b, int off, int len) {
if (strm == 0 || b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
setDictionary(strm, b, off, len);
=====================================================================
Found a 42 line (162 tokens) duplication in the following files:
Starting at line 145 of /usr/local/java/src/java/awt/image/BufferedImageFilter.java
Starting at line 232 of /usr/local/java/src/java/awt/image/BufferedImageFilter.java
ColorModel model, int pixels[], int off,
int scansize) {
// Fix 4184230
if (w < 0 || h < 0) {
throw new IllegalArgumentException("Width ("+w+
") and height ("+h+
") must be > 0");
}
// Nothing to do
if (w == 0 || h == 0) {
return;
}
if (y < 0) {
int diff = -y;
if (diff >= h) {
return;
}
off += scansize * diff;
y += diff;
h -= diff;
}
if (y + h > height) {
h = height - y;
if (h <= 0) {
return;
}
}
if (x < 0) {
int diff = -x;
if (diff >= w) {
return;
}
off += diff;
x += diff;
w -= diff;
}
if (x + w > width) {
w = width - x;
if (w <= 0) {
return;
}
}
=====================================================================
Found a 78 line (154 tokens) duplication in the following files:
Starting at line 195 of /usr/local/java/src/java/lang/reflect/Constructor.java
Starting at line 228 of /usr/local/java/src/java/lang/reflect/Method.java
sb.append(getName() + "(");
Class[] params = parameterTypes; // avoid clone
for (int j = 0; j < params.length; j++) {
sb.append(Field.getTypeName(params[j]));
if (j < (params.length - 1))
sb.append(",");
}
sb.append(")");
Class[] exceptions = exceptionTypes; // avoid clone
if (exceptions.length > 0) {
sb.append(" throws ");
for (int k = 0; k < exceptions.length; k++) {
sb.append(exceptions[k].getName());
if (k < (exceptions.length - 1))
sb.append(",");
}
}
re