Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dspinella:zlib-ng-staging
icu4j
icu4j-70.1-java8compat.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File icu4j-70.1-java8compat.patch of Package icu4j
--- a/main/classes/charset/src/com/ibm/icu/charset/Charset88591.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/Charset88591.java 2021-10-29 08:08:50.772614012 -0600 @@ -9,6 +9,7 @@ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharsetDecoder; @@ -91,8 +92,8 @@ class Charset88591 extends CharsetASCII * early termination of the loop */ if ((ch & 0xff00) != 0) { - source.position((i + 1) - source.arrayOffset()); - target.position(i + offset); + ((Buffer)source).position((i + 1) - source.arrayOffset()); + ((Buffer)target).position(i + offset); return encodeMalformedOrUnmappable(source, ch, flush); } else return null; --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetASCII.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetASCII.java 2021-10-29 08:08:50.772614012 -0600 @@ -10,6 +10,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -80,12 +81,12 @@ class CharsetASCII extends CharsetICU { cr = decodeLoopCoreOptimized(source, target, sourceArray, targetArray, sourceIndex, offset, limit); if (cr == null) { if (sourceLength <= targetLength) { - source.position(oldSource + sourceLength); - target.position(oldTarget + sourceLength); + ((Buffer)source).position(oldSource + sourceLength); + ((Buffer)target).position(oldTarget + sourceLength); cr = CoderResult.UNDERFLOW; } else { - source.position(oldSource + targetLength); - target.position(oldTarget + targetLength); + ((Buffer)source).position(oldSource + targetLength); + ((Buffer)target).position(oldTarget + targetLength); cr = CoderResult.OVERFLOW; } } @@ -125,8 +126,8 @@ class CharsetASCII extends CharsetICU { * early termination of the loop */ if ((ch & 0x80) != 0) { - source.position(i + 1); - target.position(i + offset); + ((Buffer)source).position(i + 1); + ((Buffer)target).position(i + offset); return decodeMalformedOrUnmappable(ch); } else return null; @@ -238,12 +239,12 @@ class CharsetASCII extends CharsetICU { cr = encodeLoopCoreOptimized(source, target, sourceArray, targetArray, sourceIndex, offset, limit, flush); if (cr == null) { if (sourceLength <= targetLength) { - source.position(oldSource + sourceLength); - target.position(oldTarget + sourceLength); + ((Buffer)source).position(oldSource + sourceLength); + ((Buffer)target).position(oldTarget + sourceLength); cr = CoderResult.UNDERFLOW; } else { - source.position(oldSource + targetLength); - target.position(oldTarget + targetLength); + ((Buffer)source).position(oldSource + targetLength); + ((Buffer)target).position(oldTarget + targetLength); cr = CoderResult.OVERFLOW; } } @@ -286,8 +287,8 @@ class CharsetASCII extends CharsetICU { * early termination of the loop */ if ((ch & 0xff80) != 0) { - source.position((i + 1) - source.arrayOffset()); - target.position(i + offset); + ((Buffer)source).position((i + 1) - source.arrayOffset()); + ((Buffer)target).position(i + offset); return encodeMalformedOrUnmappable(source, ch, flush); } else return null; --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java 2021-10-29 08:08:50.773614012 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -446,7 +447,7 @@ class CharsetBOCU1 extends CharsetICU { if(offsets!=null){ offsets.put(nextSourceIndex++); } - source.position(source.position()+1); + ((Buffer)source).position(source.position()+1); --targetCapacity; }else { diff = c-prev; @@ -456,7 +457,7 @@ class CharsetBOCU1 extends CharsetICU { if(offsets!=null){ offsets.put(nextSourceIndex++); } - source.position(source.position()+1); + ((Buffer)source).position(source.position()+1); --targetCapacity; }else { break; @@ -471,7 +472,7 @@ class CharsetBOCU1 extends CharsetICU { /*test the following code unit*/ char trail = source.get(source.position()); if(UTF16.isTrailSurrogate(trail)){ - source.position(source.position()+1); + ((Buffer)source).position(source.position()+1); ++nextSourceIndex; c=UCharacter.getCodePoint(c, trail); } @@ -873,7 +874,7 @@ class CharsetBOCU1 extends CharsetICU { } else { break; } - source.position(source.position()+1); + ((Buffer)source).position(source.position()+1); --count; } sourceIndex=nextSourceIndex; /* wrong if offsets==NULL but does not matter */ --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetCompoundText.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetCompoundText.java 2021-10-29 08:08:50.774614012 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -269,7 +270,7 @@ class CharsetCompoundText extends Charse if (matchFound) { state = i; - source.position(sourceIndex + (escSeqCompoundText[i].length - offset)); + ((Buffer)source).position(sourceIndex + (escSeqCompoundText[i].length - offset)); } return state; @@ -371,8 +372,8 @@ class CharsetCompoundText extends Charse } targetLength = 0; - tmpTargetBuffer.position(0); - tmpTargetBuffer.limit(3); + ((Buffer)tmpTargetBuffer).position(0); + ((Buffer)tmpTargetBuffer).limit(3); /* check if the char is a First surrogate */ if (UTF16.isSurrogate(sourceChar) || gotoGetTrail) { @@ -385,7 +386,7 @@ class CharsetCompoundText extends Charse if (source.hasRemaining()) { /* test the following code unit */ char trail = source.get(); - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); if (UTF16.isTrailSurrogate(trail)) { source.get(); sourceChar = UCharacter.getCodePoint(sourceChar, trail); @@ -423,18 +424,18 @@ class CharsetCompoundText extends Charse err = gbEncoder[i].cnvMBCSFromUnicodeWithOffsets(CharBuffer.wrap(sourceCharArray), tmpTargetBuffer, offsets, true); if (!err.isError()) { tmpState = (byte)i; - tmpTargetBuffer.limit(tmpTargetBuffer.position()); + ((Buffer)tmpTargetBuffer).limit(tmpTargetBuffer.position()); implReset(); break; } } } else if (tmpState == COMPOUND_TEXT_SINGLE_0) { tmpTargetBuffer.put(0, (byte)sourceChar); - tmpTargetBuffer.limit(1); + ((Buffer)tmpTargetBuffer).limit(1); } else { err = gbEncoder[tmpState].cnvMBCSFromUnicodeWithOffsets(CharBuffer.wrap(sourceCharArray), tmpTargetBuffer, offsets, true); if (!err.isError()) { - tmpTargetBuffer.limit(tmpTargetBuffer.position()); + ((Buffer)tmpTargetBuffer).limit(tmpTargetBuffer.position()); } } if (err.isError()) { @@ -568,7 +569,7 @@ class CharsetCompoundText extends Charse } } } else if (source.hasRemaining()) { - source.limit(findNextEsc(source)); + ((Buffer)source).limit(findNextEsc(source)); decoder = gbDecoder[currentState]; @@ -591,7 +592,7 @@ class CharsetCompoundText extends Charse } } - source.limit(sourceLimit); + ((Buffer)source).limit(sourceLimit); } if (err.isError()) { --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetDecoderICU.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetDecoderICU.java 2021-10-29 08:08:50.775614013 -0600 @@ -11,6 +11,7 @@ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -248,14 +249,14 @@ public abstract class CharsetDecoderICU // return CoderResult.UNDERFLOW; // } - in.position(in.position() + toUCountPending()); + ((Buffer)in).position(in.position() + toUCountPending()); /* do the conversion */ CoderResult ret = decode(in, out, null, false); // ok was there input held in the previous invocation of decodeLoop // that resulted in output in this invocation? - in.position(in.position() - toUCountPending()); + ((Buffer)in).position(in.position() - toUCountPending()); return ret; } @@ -428,8 +429,8 @@ public abstract class CharsetDecoderICU //UConverterUtility.uprv_memcpy(replayArray, replayBegin, preToUArray, preToUBegin, -preToULength); replayArray.put(preToUArray,0, -preToULength); source=replayArray; - source.position(0); - source.limit(replayArrayIndex-preToULength); + ((Buffer)source).position(0); + ((Buffer)source).limit(replayArrayIndex-preToULength); flush=false; sourceIndex=-1; preToULength=0; @@ -515,10 +516,10 @@ public abstract class CharsetDecoderICU //UConverterUtility.uprv_memcpy(replayArray, replayBegin, preToUArray, preToUBegin, -preToULength); replayArray.put(preToUArray,0, -preToULength); // reset position - replayArray.position(0); + ((Buffer)replayArray).position(0); source=replayArray; - source.limit(replayArrayIndex-preToULength); + ((Buffer)source).limit(replayArrayIndex-preToULength); flush=false; if((sourceIndex+=preToULength)<0) { sourceIndex=-1; --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java 2021-10-29 08:08:50.776614013 -0600 @@ -11,6 +11,7 @@ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.nio.CharBuffer; @@ -265,7 +266,7 @@ public abstract class CharsetEncoderICU //fromUnicodeReset(); return CoderResult.UNDERFLOW; } - in.position(in.position() + fromUCountPending()); + ((Buffer)in).position(in.position() + fromUCountPending()); /* do the conversion */ CoderResult ret = encode(in, out, null, false); setSourcePosition(in); @@ -421,8 +422,8 @@ public abstract class CharsetEncoderICU //UConverterUtility.uprv_memcpy(replayArray, replayArrayIndex, preFromUArray, 0, -preFromULength*UMachine.U_SIZEOF_UCHAR); replayArray.put(preFromUArray, 0, -preFromULength); source = replayArray; - source.position(replayArrayIndex); - source.limit(replayArrayIndex - preFromULength); //preFromULength is negative, see declaration + ((Buffer)source).position(replayArrayIndex); + ((Buffer)source).limit(replayArrayIndex - preFromULength); //preFromULength is negative, see declaration flush = false; preFromULength = 0; @@ -502,8 +503,8 @@ public abstract class CharsetEncoderICU replayArray.put(preFromUArray, 0, -preFromULength); source = replayArray; - source.position(replayArrayIndex); - source.limit(replayArrayIndex - preFromULength); + ((Buffer)source).position(replayArrayIndex); + ((Buffer)source).limit(replayArrayIndex - preFromULength); flush = false; if ((sourceIndex += preFromULength) < 0) { sourceIndex = -1; @@ -760,7 +761,7 @@ public abstract class CharsetEncoderICU // ok was there input held in the previous invocation of encodeLoop // that resulted in output in this invocation? - source.position(source.position() - fromUCountPending()); + ((Buffer)source).position(source.position() - fromUCountPending()); } /* @@ -829,7 +830,7 @@ public abstract class CharsetEncoderICU /* start the new target at the first free slot in the error buffer */ int errBuffLen = encoder.errorBufferLength; ByteBuffer newTarget = ByteBuffer.wrap(encoder.errorBuffer); - newTarget.position(errBuffLen); /* set the position at the end of the error buffer */ + ((Buffer)newTarget).position(errBuffLen); /* set the position at the end of the error buffer */ encoder.errorBufferLength = 0; encoder.encode(source, newTarget, null, false); @@ -879,7 +880,7 @@ public abstract class CharsetEncoderICU if (!UTF16.isTrailSurrogate(trail)) { fromUChar32 = lead; - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); return CoderResult.malformedForLength(1); } --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetHZ.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetHZ.java 2021-10-29 08:08:50.777614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -125,7 +126,7 @@ class CharsetHZ extends CharsetICU { if (isStateDBCS ? (0x21 <= mySourceChar && mySourceChar <= 0x7e) : mySourceChar <= 0x7f) { /* The current byte could be the start of a character: Back it out. */ toULength = 1; - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); } else { /* Include the current byte in the illegal sequence. */ toUBytesArray[1] = (byte)mySourceChar; @@ -170,7 +171,7 @@ class CharsetHZ extends CharsetICU { mySourceChar = (leadByte << 8) | mySourceChar; } else if (trailIsOk) { /* report a single illegal byte and continue with the following DBCS starter byte */ - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); mySourceChar = leadByte; } else { /* report a pair of illegal bytes if the second byte is not a DBCS starter */ --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java 2021-10-29 08:08:50.779614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -701,7 +702,7 @@ class CharsetISO2022 extends CharsetICU int bytesFromThisBuffer = decoder.toULength - initialToULength; if (backOutDistance <= bytesFromThisBuffer) { /* same as initialToULength<=1 */ - source.position(source.position() - backOutDistance); + ((Buffer)source).position(source.position() - backOutDistance); } else { /* Back out bytes from the previous buffer: Need to replay them. */ decoder.preToULength = (byte)(bytesFromThisBuffer - backOutDistance); @@ -710,7 +711,7 @@ class CharsetISO2022 extends CharsetICU for (int i = 0; i < -(decoder.preToULength); i++) { decoder.preToUArray[i] = decoder.toUBytesArray[i+1]; } - source.position(source.position() - bytesFromThisBuffer); + ((Buffer)source).position(source.position() - bytesFromThisBuffer); } decoder.toULength = 1; } @@ -907,7 +908,7 @@ class CharsetISO2022 extends CharsetICU case ESC_2022: if (!gotoEscape) { - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); } else { gotoEscape = false; } @@ -1061,14 +1062,14 @@ class CharsetISO2022 extends CharsetICU /* disassemble the surrogate pair and write to output */ targetUniChar -= 0x0010000; target.put((char)(0xd800 + (char)(targetUniChar>>10))); - target.position(target.position()-1); + ((Buffer)target).position(target.position()-1); if (offsets != null) { offsets.put(target.remaining(), source.remaining() - (mySourceChar <= 0xff ? 1 : 2)); } target.get(); if (target.hasRemaining()) { target.put((char)(0xdc00+(char)(targetUniChar&0x3ff))); - target.position(target.position()-1); + ((Buffer)target).position(target.position()-1); if (offsets != null) { offsets.put(target.remaining(), source.remaining() - (mySourceChar <= 0xff ? 1 : 2)); } @@ -1167,7 +1168,7 @@ class CharsetISO2022 extends CharsetICU case ESC_2022: if (!gotoEscape) { - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); } // escape label gotoEscape = false; @@ -1239,7 +1240,7 @@ class CharsetISO2022 extends CharsetICU tempBufLen = 2; } ByteBuffer tempBuffer = ByteBuffer.wrap(tempBuf); - tempBuffer.limit(tempBufLen); + ((Buffer)tempBuffer).limit(tempBufLen); targetUniChar = MBCSSimpleGetNextUChar(cnv, tempBuffer, false); mySourceChar = (mySourceChar << 8) | trailByte; @@ -1366,7 +1367,7 @@ class CharsetISO2022 extends CharsetICU continue; } else if (!gotoGetTrailByte && (gotoEscape || mySourceChar == ESC_2022)) { if (!gotoEscape) { - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); } // escape label gotoEscape = false; // reset gotoEscape flag @@ -1419,11 +1420,11 @@ class CharsetISO2022 extends CharsetICU } else if (mySourceChar <= 0x7f) { int savedSourceLimit = source.limit(); int savedSourcePosition = source.position(); - source.limit(source.position()); - source.position(source.position()-1); + ((Buffer)source).limit(source.position()); + ((Buffer)source).position(source.position()-1); targetUniChar = MBCSSimpleGetNextUChar(myConverterData.currentConverter.sharedData, source, usingFallback); - source.limit(savedSourceLimit); - source.position(savedSourcePosition); + ((Buffer)source).limit(savedSourceLimit); + ((Buffer)source).position(savedSourcePosition); } else { targetUniChar = 0xffff; } @@ -1468,7 +1469,7 @@ class CharsetISO2022 extends CharsetICU /* Find the end of the buffer e.g : Next Escape Seq | end of Buffer */ int oldSourcePos = source.position(); sourceLimit = getEndOfBuffer_2022(source); - source.position(oldSourcePos); + ((Buffer)source).position(oldSourcePos); if (source.position() != sourceLimit) { /* * get the current partial byte sequence @@ -1489,9 +1490,9 @@ class CharsetISO2022 extends CharsetICU */ argTarget = target.position(); oldSourceLimit = source.limit(); // save the old source limit change to new one - source.limit(sourceLimit); + ((Buffer)source).limit(sourceLimit); err = myConverterData.currentDecoder.cnvMBCSToUnicodeWithOffsets(source, target, offsets, flush); - source.limit(oldSourceLimit); // restore source limit; + ((Buffer)source).limit(oldSourceLimit); // restore source limit; if (offsets != null && sourceStart != argSource) { /* update offsets to base them on the actual start of the input */ int delta = argSource - sourceStart; @@ -1770,7 +1771,7 @@ class CharsetISO2022 extends CharsetICU /* test the following code unit */ char trail = source.get(); /* go back to the previous position */ - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); if (UTF16.isTrailSurrogate(trail)) { source.get(); sourceChar = UCharacter.getCodePoint(sourceChar, trail); @@ -2277,7 +2278,7 @@ class CharsetISO2022 extends CharsetICU if (source.hasRemaining()) { /* test the following code unit */ char trail = source.get(); - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); if (UTF16.isTrailSurrogate(trail)) { source.get(); sourceChar = UCharacter.getCodePoint(sourceChar, trail); @@ -2777,7 +2778,7 @@ class CharsetISO2022 extends CharsetICU if (source.hasRemaining()) { /* test the following code unit */ char trail = source.get(); - source.position(source.position()-1); + ((Buffer)source).position(source.position()-1); if (UTF16.isTrailSurrogate(trail)) { source.get(); sourceChar = UCharacter.getCodePoint(sourceChar, trail); --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetLMBCS.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetLMBCS.java 2021-10-29 08:08:50.780614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -597,13 +598,13 @@ class CharsetLMBCS extends CharsetICU { oldSourceLimit = source.limit(); oldSourcePos = source.position(); - source.position(oldSourcePos + positionOffset); - source.limit(source.position() + length); + ((Buffer)source).position(oldSourcePos + positionOffset); + ((Buffer)source).limit(source.position() + length); uniChar = extraInfo.decoder.simpleGetNextUChar(source, false); - source.limit(oldSourceLimit); - source.position(oldSourcePos); + ((Buffer)source).limit(oldSourceLimit); + ((Buffer)source).position(oldSourcePos); return uniChar; } @@ -649,7 +650,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(1) */ if (source.position() + 1 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } C0C1byte = (short)(source.get() & UConverterConstants.UNSIGNED_BYTE_MASK); @@ -658,7 +659,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(2) */ if (source.position() + 2 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } @@ -673,7 +674,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(2) */ if (source.position() + 2 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } @@ -693,7 +694,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(1) */ if (source.position() + 1 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } CurByte = (short)(source.get() & UConverterConstants.UNSIGNED_BYTE_MASK); @@ -724,7 +725,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(0) */ if (source.position() + 0 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } @@ -734,7 +735,7 @@ class CharsetLMBCS extends CharsetICU { /* CHECK_SOURCE_LIMIT(1) */ if (source.position() + 1 > source.limit()) { err[0] = CoderResult.OVERFLOW; - source.position(source.limit()); + ((Buffer)source).position(source.limit()); return 0xFFFF; } @@ -781,9 +782,9 @@ class CharsetLMBCS extends CharsetICU { } } tmpSourceBuffer = ByteBuffer.wrap(LMBCS); - tmpSourceBuffer.limit(savebytes); + ((Buffer)tmpSourceBuffer).limit(savebytes); uniChar = (char)LMBCSGetNextUCharWorker(tmpSourceBuffer, err); - source.position(saveSource + tmpSourceBuffer.position() - size_old); + ((Buffer)source).position(saveSource + tmpSourceBuffer.position() - size_old); errSource = saveSource - size_old; if (err[0].isOverflow()) { /* err == U_TRUNCATED_CHAR_FOUND */ @@ -792,7 +793,7 @@ class CharsetLMBCS extends CharsetICU { for (int i = 0; i < savebytes; i++) { toUBytesArray[i] = LMBCS[i]; } - source.position(source.limit()); + ((Buffer)source).position(source.limit()); err[0] = CoderResult.UNDERFLOW; return err[0]; } else { --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java 2021-10-29 08:08:50.783614013 -0600 @@ -1458,7 +1458,7 @@ class CharsetMBCS extends CharsetICU { // TODO: It is very inefficient to create Buffer objects for each array access. // We should create an inner class Extensions (or sibling class CharsetMBCSExtensions) // which has buffers for the arrays, together with the code that works with them. - indexes.position(indexes.getInt(index << 2)); + ((Buffer)indexes).position(indexes.getInt(index << 2)); if (itemType == int.class) b = indexes.asIntBuffer(); else if (itemType == char.class) @@ -1468,12 +1468,12 @@ class CharsetMBCS extends CharsetICU { else // default or (itemType == byte.class) b = indexes.slice(); - indexes.position(oldpos); + ((Buffer)indexes).position(oldpos); return b; } private static int GET_MAX_BYTES_PER_UCHAR(ByteBuffer indexes) { - indexes.position(0); + ((Buffer)indexes).position(0); return indexes.getInt(EXT_COUNT_BYTES) & 0xff; } @@ -1649,7 +1649,7 @@ class CharsetMBCS extends CharsetICU { if (match > 0) { if (match >= preToULength) { /* advance src pointer for the consumed input */ - source.position(source.position() + match - preToULength); + ((Buffer)source).position(source.position() + match - preToULength); preToULength = 0; } else { /* the match did not use all of preToU[] - keep the rest for replay */ @@ -1670,7 +1670,7 @@ class CharsetMBCS extends CharsetICU { for (j = preToULength; j < match; ++j) { preToUArray[j] = source.get(sArrayIndex++); } - source.position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ + ((Buffer)source).position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ preToULength = (byte) match; } else /* match==0 */{ /* @@ -1753,7 +1753,7 @@ class CharsetMBCS extends CharsetICU { for (;;) { /* go to the next section */ int oldpos = toUTable.position(); - toUSection = ((IntBuffer) toUTable.position(index)).slice(); + toUSection = toUTable.position(index).slice(); toUTable.position(oldpos); /* read first pair of the section */ @@ -1829,7 +1829,7 @@ class CharsetMBCS extends CharsetICU { char[] a = new char[TO_U_GET_LENGTH(value)]; CharBuffer cb = ((CharBuffer) ARRAY(cx, EXT_TO_U_UCHARS_INDEX, char.class)); - cb.position(TO_U_GET_INDEX(value)); + ((Buffer)cb).position(TO_U_GET_INDEX(value)); cb.get(a, 0, a.length); return toUWriteUChars(this, a, 0, a.length, target, offsets, srcIndex); } @@ -1925,7 +1925,7 @@ class CharsetMBCS extends CharsetICU { value, isToUUseFallback(), flush); if (match > 0) { /* advance src pointer for the consumed input */ - source.position(source.position() + match - firstLength); + ((Buffer)source).position(source.position() + match - firstLength); /* write result to target */ cr[0] = writeToU(value[0], target, offsets, srcIndex); @@ -1950,7 +1950,7 @@ class CharsetMBCS extends CharsetICU { for (; j < match; ++j) { preToUArray[j] = source.get(sArrayIndex++); } - source.position(sArrayIndex); + ((Buffer)source).position(sArrayIndex); preToULength = (byte) match; return true; } else /* match==0 no match */{ @@ -2330,7 +2330,7 @@ class CharsetMBCS extends CharsetICU { } else /* unassigned sequences indicated with byteIndex>0 */{ /* try an extension mapping */ int sourceBeginIndex = sourceArrayIndex; - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); byteIndex = toU(byteIndex, source, target, offsets, sourceIndex, flush, cr); sourceArrayIndex = source.position(); sourceIndex = nextSourceIndex += (sourceArrayIndex - sourceBeginIndex); @@ -2348,7 +2348,7 @@ class CharsetMBCS extends CharsetICU { toULength = byteIndex; /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -2446,7 +2446,7 @@ class CharsetMBCS extends CharsetICU { /* try an extension mapping */ lastSource = sourceArrayIndex; toUBytesArray[0] = source.get(sourceArrayIndex - 1); - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); toULength = toU((byte) 1, source, target, offsets, sourceIndex, flush, cr); sourceArrayIndex = source.position(); sourceIndex += 1 + (sourceArrayIndex - lastSource); @@ -2480,7 +2480,7 @@ class CharsetMBCS extends CharsetICU { } /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -2600,7 +2600,7 @@ class CharsetMBCS extends CharsetICU { /* try an extension mapping */ int sourceBeginIndex = sourceArrayIndex; toUBytesArray[0] = source.get(sourceArrayIndex - 1); - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); toULength = toU((byte) 1, source, target, offsets, sourceIndex, flush, cr); sourceArrayIndex = source.position(); sourceIndex += 1 + (sourceArrayIndex - sourceBeginIndex); @@ -2613,7 +2613,7 @@ class CharsetMBCS extends CharsetICU { } /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -2772,7 +2772,7 @@ class CharsetMBCS extends CharsetICU { if (sharedData.mbcs.extIndexes != null) { /* Increase the limit for proper handling. Used in LMBCS. */ if (source.limit() > i + length) { - source.limit(i + length); + ((Buffer)source).limit(i + length); } return simpleMatchToU(source, useFallback); } @@ -3358,7 +3358,7 @@ class CharsetMBCS extends CharsetICU { fromUChar32 = c; fromUnicodeStatus = prevLength; - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); } catch (BufferOverflowException ex) { cr[0] = CoderResult.OVERFLOW; } @@ -3533,7 +3533,7 @@ class CharsetMBCS extends CharsetICU { if (match >= preFromULength) { /* advance src pointer for the consumed input */ - source.position(source.position() + match - preFromULength); + ((Buffer)source).position(source.position() + match - preFromULength); preFromULength = 0; } else { /* the match did not use all of preFromU[] - keep the rest for replay */ @@ -3558,7 +3558,7 @@ class CharsetMBCS extends CharsetICU { for (j = preFromULength; j < match; ++j) { preFromUArray[j] = source.get(sArrayIndex++); } - source.position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ + ((Buffer)source).position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ preFromULength = (byte) match; } else { /* match==0 or 1 */ /* @@ -3672,10 +3672,10 @@ class CharsetMBCS extends CharsetICU { for (;;) { /* go to the next section */ int oldpos = fromUTableUChars.position(); - fromUSectionUChars = ((CharBuffer) fromUTableUChars.position(index)).slice(); - fromUTableUChars.position(oldpos); + fromUSectionUChars = ((CharBuffer) ((Buffer)fromUTableUChars).position(index)).slice(); + ((Buffer)fromUTableUChars).position(oldpos); oldpos = fromUTableValues.position(); - fromUSectionValues = ((IntBuffer) fromUTableValues.position(index)).slice(); + fromUSectionValues = fromUTableValues.position(index).slice(); fromUTableValues.position(oldpos); /* read first pair of the section */ @@ -3835,7 +3835,7 @@ class CharsetMBCS extends CharsetICU { byte[] slice = new byte[length]; ByteBuffer bb = ((ByteBuffer) ARRAY(cx, EXT_FROM_U_BYTES_INDEX, byte.class)); - bb.position(value); + ((Buffer)bb).position(value); bb.get(slice, 0, slice.length); resultArray = slice; @@ -3943,7 +3943,7 @@ class CharsetMBCS extends CharsetICU { if (match >= 2 && !(FROM_U_GET_LENGTH(value[0]) == 1 && sharedData.mbcs.outputType == MBCS_OUTPUT_DBCS_ONLY)) { /* advance src pointer for the consumed input */ - source.position(source.position() + match - 2); /* remove 2 for the initial code point */ + ((Buffer)source).position(source.position() + match - 2); /* remove 2 for the initial code point */ /* write result to target */ cr[0] = writeFromU(value[0], target, offsets, srcIndex); @@ -3962,7 +3962,7 @@ class CharsetMBCS extends CharsetICU { for (j = 0; j < match; ++j) { preFromUArray[j] = source.get(sArrayIndex++); } - source.position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ + ((Buffer)source).position(sArrayIndex); /* same as *src=srcLimit; because we reached the end of input */ preFromULength = (byte) match; return true; } else if (match == 1) { @@ -4102,7 +4102,7 @@ class CharsetMBCS extends CharsetICU { /* try an extension mapping */ lastSource = sourceArrayIndex; - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); c = fromU(c, source, target, offsets, sourceIndex, length, flush, cr); sourceArrayIndex = source.position(); sourceIndex += length + (sourceArrayIndex - lastSource); @@ -4142,7 +4142,7 @@ class CharsetMBCS extends CharsetICU { fromUChar32 = c; /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -4292,7 +4292,7 @@ class CharsetMBCS extends CharsetICU { fromUChar32 = c; /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -4482,7 +4482,7 @@ class CharsetMBCS extends CharsetICU { fromUChar32 = c; /* write back the updated pointers */ - source.position(sourceArrayIndex); + ((Buffer)source).position(sourceArrayIndex); return cr[0]; } @@ -4576,7 +4576,7 @@ class CharsetMBCS extends CharsetICU { boolean flush, CoderResult[] cr) { /* try an extension mapping */ int sourceBegin = x.sourceArrayIndex; - source.position(x.sourceArrayIndex); + ((Buffer)source).position(x.sourceArrayIndex); x.c = fromU(x.c, source, target, null, x.sourceIndex, x.nextSourceIndex, flush, cr); x.sourceArrayIndex = source.position(); x.nextSourceIndex += x.sourceArrayIndex - sourceBegin; @@ -4649,7 +4649,7 @@ class CharsetMBCS extends CharsetICU { boolean flush, CoderResult[] cr) { /* try an extension mapping */ int sourceBegin = x.sourceArrayIndex; - source.position(x.sourceArrayIndex); + ((Buffer)source).position(x.sourceArrayIndex); x.c = fromU(x.c, source, target, null, x.sourceIndex, x.nextSourceIndex, flush, cr); x.sourceArrayIndex = source.position(); x.nextSourceIndex += x.sourceArrayIndex - sourceBegin; --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetSCSU.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetSCSU.java 2021-10-29 08:08:50.784614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -293,7 +294,7 @@ class CharsetSCSU extends CharsetICU{ if(state==readCommand){ while(source.hasRemaining() && target.hasRemaining() && (b=(short)(source.get(source.position()) & UConverterConstants.UNSIGNED_BYTE_MASK)) >= 0x20){ - source.position(source.position()+1); + ((Buffer)source).position(source.position()+1); ++nextSourceIndex; if(b <= 0x7f){ /*Write US graphic character or DEL*/ --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF16.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF16.java 2021-10-29 08:08:50.785614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -212,7 +213,7 @@ class CharsetUTF16 extends CharsetICU { if (!UTF16.isTrailSurrogate(trail)) { // pretend like we didn't read the last 2 bytes toULength = 2; - source.position(source.position() - 2); + ((Buffer)source).position(source.position() - 2); // 2 bytes, lead malformed toUnicodeStatus = 0; --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF7.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF7.java 2021-10-29 08:08:50.785614013 -0600 @@ -8,6 +8,7 @@ */ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -302,7 +303,7 @@ class CharsetUTF7 extends CharsetICU { if(base64Counter==-1) { /* illegal: + immediately followed by something other than base64 or minus sign */ /* include the plus sign in the reported sequence, but not the subsequent char */ - source.position(source.position() -1); + ((Buffer)source).position(source.position() -1); toUBytesArray[0]=PLUS; byteIndex=1; cr=CoderResult.malformedForLength(sourceArrayIndex); @@ -310,7 +311,7 @@ class CharsetUTF7 extends CharsetICU { } else if(bits!=0) { /* bits are illegally left over, a UChar is incomplete */ /* don't include current char (legal or illegal) in error seq */ - source.position(source.position() -1); + ((Buffer)source).position(source.position() -1); --byteIndex; cr=CoderResult.malformedForLength(sourceArrayIndex); break directMode; @@ -322,7 +323,7 @@ class CharsetUTF7 extends CharsetICU { break directMode; } else { /* un-read the current character in case it is a plus sign */ - source.position(source.position() -1); + ((Buffer)source).position(source.position() -1); sourceIndex=nextSourceIndex-1; continue directMode; } @@ -555,7 +556,7 @@ class CharsetUTF7 extends CharsetICU { } } else { /* un-read this character and switch to unicode mode */ - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); target.put(useIMAP ? AMPERSAND : PLUS); if (offsets != null) { offsets.put(sourceIndex); @@ -581,7 +582,7 @@ class CharsetUTF7 extends CharsetICU { inDirectMode=1; /* trick: back out this character to make this easier */ - source.position(source.position() - 1); + ((Buffer)source).position(source.position() - 1); /* terminate the base64 sequence */ if (base64Counter!=0) { --- a/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF8.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/CharsetUTF8.java 2021-10-29 08:08:50.786614013 -0600 @@ -11,6 +11,7 @@ package com.ibm.icu.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -359,8 +360,8 @@ class CharsetUTF8 extends CharsetICU { srcIdx = sourceIndex; tgtIdx = targetIndex; if (cr != null) { - source.position(srcIdx - source.arrayOffset()); - target.position(tgtIdx - target.arrayOffset()); + ((Buffer)source).position(srcIdx - source.arrayOffset()); + ((Buffer)target).position(tgtIdx - target.arrayOffset()); return cr; } } @@ -432,8 +433,8 @@ class CharsetUTF8 extends CharsetICU { } /* set the new source and target positions and return the CoderResult stored in cr */ - source.position(srcIdx - source.arrayOffset()); - target.position(tgtIdx - target.arrayOffset()); + ((Buffer)source).position(srcIdx - source.arrayOffset()); + ((Buffer)target).position(tgtIdx - target.arrayOffset()); return cr; } else { --- a/main/classes/charset/src/com/ibm/icu/charset/UConverterDataReader.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/charset/src/com/ibm/icu/charset/UConverterDataReader.java 2021-10-29 08:08:50.787614013 -0600 @@ -10,6 +10,7 @@ package com.ibm.icu.charset; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -595,7 +596,7 @@ final class UConverterDataReader { throw new InvalidFormatException(); } int numBytesExtensionStructure = b.getInt(31 * 4); - b.limit(numBytesExtensionStructure); + ((Buffer)b).limit(numBytesExtensionStructure); ICUBinary.skipBytes(byteBuffer, numBytesExtensionStructure); return b; } --- a/main/classes/core/src/com/ibm/icu/impl/ICUBinary.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/core/src/com/ibm/icu/impl/ICUBinary.java 2021-10-29 08:08:50.788614013 -0600 @@ -15,6 +15,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.channels.FileChannel; @@ -94,8 +95,8 @@ public final class ICUBinary { int index = binarySearch(bytes, key); if (index >= 0) { ByteBuffer data = bytes.duplicate(); - data.position(getDataOffset(bytes, index)); - data.limit(getDataOffset(bytes, index + 1)); + ((Buffer)data).position(getDataOffset(bytes, index)); + ((Buffer)data).limit(getDataOffset(bytes, index + 1)); return ICUBinary.sliceWithOrder(data); } else { return null; @@ -609,7 +610,7 @@ public final class ICUBinary { formatVersion[2] & 0xff, formatVersion[3] & 0xff)); } - bytes.position(headerSize); + ((Buffer)bytes).position(headerSize); return // dataVersion (bytes.get(20) << 24) | ((bytes.get(21) & 0xff) << 16) | @@ -648,7 +649,7 @@ public final class ICUBinary { public static void skipBytes(ByteBuffer bytes, int skipLength) { if (skipLength > 0) { - bytes.position(bytes.position() + skipLength); + ((Buffer)bytes).position(bytes.position() + skipLength); } } --- a/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundleReader.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundleReader.java 2021-10-29 08:08:50.789614013 -0600 @@ -11,6 +11,7 @@ package com.ibm.icu.impl; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftReference; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.IntBuffer; @@ -294,7 +295,7 @@ public final class ICUResourceBundleRead // unlike regular bundles' key strings for which indexes // are based on the start of the bundle data. keyBytes = new byte[(keysTop - keysBottom) << 2]; - bytes.position(keysBottom << 2); + ((Buffer)bytes).position(keysBottom << 2); } else { localKeyLimit = keysTop << 2; keyBytes = new byte[localKeyLimit]; @@ -307,9 +308,9 @@ public final class ICUResourceBundleRead int _16BitTop = getIndexesInt(URES_INDEX_16BIT_TOP); if(_16BitTop > keysTop) { int num16BitUnits = (_16BitTop - keysTop) * 2; - bytes.position(keysTop << 2); + ((Buffer)bytes).position(keysTop << 2); b16BitUnits = bytes.asCharBuffer(); - b16BitUnits.limit(num16BitUnits); + ((Buffer)b16BitUnits).limit(num16BitUnits); maxOffset |= num16BitUnits - 1; } else { b16BitUnits = EMPTY_16_BIT_UNITS; @@ -327,7 +328,7 @@ public final class ICUResourceBundleRead } // Reset the position for future .asCharBuffer() etc. - bytes.position(0); + ((Buffer)bytes).position(0); } private int getIndexesInt(int i) { @@ -387,7 +388,7 @@ public final class ICUResourceBundleRead } } else { CharBuffer temp = bytes.asCharBuffer(); - temp.position(offset / 2); + ((Buffer)temp).position(offset / 2); temp.get(chars); } return chars; @@ -403,7 +404,7 @@ public final class ICUResourceBundleRead } } else { IntBuffer temp = bytes.asIntBuffer(); - temp.position(offset / 4); + ((Buffer)temp).position(offset / 4); temp.get(ints); } return ints; @@ -418,7 +419,7 @@ public final class ICUResourceBundleRead } } else { CharBuffer temp = b16BitUnits.duplicate(); - temp.position(offset); + ((Buffer)temp).position(offset); temp.get(result); } return result; @@ -665,7 +666,7 @@ public final class ICUResourceBundleRead } } else { ByteBuffer temp = bytes.duplicate(); - temp.position(offset); + ((Buffer)temp).position(offset); temp.get(ba); } return ba; @@ -696,7 +697,7 @@ public final class ICUResourceBundleRead } offset += 4; ByteBuffer result = bytes.duplicate(); - result.position(offset).limit(offset + length); + ((Buffer)result).position(offset).limit(offset + length); result = ICUBinary.sliceWithOrder(result); if(!result.isReadOnly()) { result = result.asReadOnlyBuffer(); --- a/main/classes/core/src/com/ibm/icu/impl/RBBIDataWrapper.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/core/src/com/ibm/icu/impl/RBBIDataWrapper.java 2021-10-29 08:08:50.790614013 -0600 @@ -11,6 +11,7 @@ package com.ibm.icu.impl; import java.io.DataOutputStream; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Arrays; @@ -361,7 +362,7 @@ public final class RBBIDataWrapper { ICUBinary.skipBytes(bytes, This.fHeader.fTrie - pos); // seek buffer from end of pos = This.fHeader.fTrie; // previous section to the start of the trie - bytes.mark(); // Mark position of start of TRIE in the input + ((Buffer)bytes).mark(); // Mark position of start of TRIE in the input // and tell Java to keep the mark valid so long // as we don't go more than 100 bytes past the // past the end of the TRIE. @@ -373,7 +374,7 @@ public final class RBBIDataWrapper { // at an unknown position, preceding the // padding between TRIE and following section. - bytes.reset(); // Move buffer back to marked position at + ((Buffer)bytes).reset(); // Move buffer back to marked position at // the start of the serialized TRIE. Now our // "pos" variable and the buffer are in // agreement. --- a/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java 2021-10-29 08:08:50.791614013 -0600 @@ -14,6 +14,7 @@ package com.ibm.icu.text; import java.io.IOException; import java.io.LineNumberReader; import java.io.Reader; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.text.ParseException; import java.util.ArrayList; @@ -1877,7 +1878,7 @@ public class SpoofChecker { // A ByteBuffer is what the ICU internal data loading functions provide. private SpoofData(ByteBuffer bytes) throws java.io.IOException { ICUBinary.readHeader(bytes, DATA_FORMAT, IS_ACCEPTABLE); - bytes.mark(); + ((Buffer)bytes).mark(); readData(bytes); } @@ -1930,15 +1931,15 @@ public class SpoofChecker { // of the data items. Now read each in turn, first seeking the // input stream to the position of the data item. - bytes.reset(); + ((Buffer)bytes).reset(); ICUBinary.skipBytes(bytes, CFUKeysOffset); fCFUKeys = ICUBinary.getInts(bytes, CFUKeysSize, 0); - bytes.reset(); + ((Buffer)bytes).reset(); ICUBinary.skipBytes(bytes, CFUValuesOffset); fCFUValues = ICUBinary.getShorts(bytes, CFUValuesSize, 0); - bytes.reset(); + ((Buffer)bytes).reset(); ICUBinary.skipBytes(bytes, CFUStringTableOffset); fCFUStrings = ICUBinary.getString(bytes, CFUStringTableSize, 0); } --- a/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java 2021-10-29 08:10:04.130616650 -0600 @@ -9,6 +9,7 @@ package com.ibm.icu.dev.test.charset; +import java.nio.Buffer; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.nio.CharBuffer; @@ -107,30 +108,30 @@ public class TestCharset extends TestFmw } - us.limit(us.position()); - us.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); if(us.length()==0){ continue; } - bs1.limit(bs1.position()); - bs1.position(0); + ((Buffer)bs1).limit(bs1.position()); + ((Buffer)bs1).position(0); ByteBuffer newBS = ByteBuffer.allocate(bs1.capacity()); //newBS.put((byte)0xFE); //newBS.put((byte)0xFF); newBS.put(bs1); - bs1.position(0); + ((Buffer)bs1).position(0); smBufDecode(d1, "UTF-16", bs1, us); smBufEncode(e1, "UTF-16", us, newBS); - bs2.limit(bs2.position()); - bs2.position(0); - newBS.clear(); + ((Buffer)bs2).limit(bs2.position()); + ((Buffer)bs2).position(0); + ((Buffer)newBS).clear(); //newBS.put((byte)0xFF); //newBS.put((byte)0xFE); newBS.put(bs2); - bs2.position(0); + ((Buffer)bs2).position(0); smBufDecode(d2, "UTF16-LE", bs2, us); smBufEncode(e2, "UTF-16LE", us, newBS); @@ -178,12 +179,12 @@ public class TestCharset extends TestFmw bs2.put((byte) (c >>> 16)); bs2.put((byte) (c >>> 24)); } - bs1.limit(bs1.position()); - bs1.position(0); - bs2.limit(bs2.position()); - bs2.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs1).limit(bs1.position()); + ((Buffer)bs1).position(0); + ((Buffer)bs2).limit(bs2.position()); + ((Buffer)bs2).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); if(us.length()==0){ continue; } @@ -197,12 +198,12 @@ public class TestCharset extends TestFmw newBS.put((byte)0xFF); newBS.put(bs1); - bs1.position(0); + ((Buffer)bs1).position(0); smBufDecode(d1, "UTF-32", bs1, us); smBufEncode(e1, "UTF-32", us, newBS); - newBS.clear(); + ((Buffer)newBS).clear(); newBS.put((byte)0xFF); newBS.put((byte)0xFE); @@ -210,7 +211,7 @@ public class TestCharset extends TestFmw newBS.put((byte)0x00); newBS.put(bs2); - bs2.position(0); + ((Buffer)bs2).position(0); smBufDecode(d2, "UTF-32LE", bs2, us); smBufEncode(e2, "UTF-32LE", us, newBS); @@ -449,7 +450,7 @@ public class TestCharset extends TestFmw for (int index = 0; index < input.length; index++) { CharBuffer source = CharBuffer.wrap(input[index]); cr = encoder.encode(source, bs, true); - bs.rewind(); + ((Buffer)bs).rewind(); encoder.reset(); // if cr != results[x] @@ -464,7 +465,7 @@ public class TestCharset extends TestFmw source = CharBuffer.wrap(input[index].toCharArray()); cr = encoder.encode(source, bs, true); - bs.rewind(); + ((Buffer)bs).rewind(); encoder.reset(); // if cr != results[x] @@ -563,8 +564,8 @@ public class TestCharset extends TestFmw decoder.reset(); cr = decoder.decode(bs, us, true); - bs.rewind(); - us.rewind(); + ((Buffer)bs).rewind(); + ((Buffer)us).rewind(); if (!cr.isMalformed() || cr.length() != 1) { errln("Incorrect result in " + converter + " decoder for 0x" + Integer.toHexString(i) + " received " + cr); @@ -572,8 +573,8 @@ public class TestCharset extends TestFmw } encoder.reset(); cr = encoder.encode(us, bs, true); - bs.rewind(); - us.rewind(); + ((Buffer)bs).rewind(); + ((Buffer)us).rewind(); if (!cr.isMalformed() || cr.length() != 1) { errln("Incorrect result in " + converter + " encoder for 0x" + Integer.toHexString(i) + " received " + cr); @@ -585,8 +586,8 @@ public class TestCharset extends TestFmw decoder.reset(); cr = decoder.decode(bs, us, true); - bs.rewind(); - us.rewind(); + ((Buffer)bs).rewind(); + ((Buffer)us).rewind(); if (!cr.isMalformed() || cr.length() != 1) { errln("Incorrect result in " + converter + " decoder for 0x" + Integer.toHexString(i) + " received " + cr); @@ -594,8 +595,8 @@ public class TestCharset extends TestFmw } encoder.reset(); cr = encoder.encode(us, bs, true); - bs.rewind(); - us.rewind(); + ((Buffer)bs).rewind(); + ((Buffer)us).rewind(); if (!cr.isMalformed() || cr.length() != 1) { errln("Incorrect result in " + converter + " encoder for 0x" + Integer.toHexString(i) + " received " + cr); @@ -669,9 +670,9 @@ public class TestCharset extends TestFmw int ccPositions[] = { 0, 0, 0, 2, 2 }; for (int i = 0; i < testLoopSize; i++) { encoder.reset(); - bb.limit(bbLimits[i]); - bb.position(bbPositions[i]); - cb.position(ccPositions[i]); + ((Buffer)bb).limit(bbLimits[i]); + ((Buffer)bb).position(bbPositions[i]); + ((Buffer)cb).position(ccPositions[i]); result = encoder.encode(cb, bb, true); if (i < 3) { @@ -838,7 +839,7 @@ public class TestCharset extends TestFmw encoder.onUnmappableCharacter(CodingErrorAction.REPORT); encoder.onMalformedInput(CodingErrorAction.REPORT); for (int i=0; i<n; i++) { - source.limit(i+1); + ((Buffer)source).limit(i+1); cr = encoder.encode(source, target, i == n - 1); if (!(equals(cr, results[i]) || (results[i].isUnmappable() && cr.isUnderflow()) // mappability depends on the converter @@ -1242,7 +1243,7 @@ public class TestCharset extends TestFmw decoder.reset(); CoderResult result=null; for (int i = 1; i <= byteStr.length; i++) { - b.limit(i); + ((Buffer)b).limit(i); result = decoder.decode(b, chars, false); if(result.isOverflow()){ errln("ToChars single threw an overflow exception"); @@ -1270,9 +1271,9 @@ public class TestCharset extends TestFmw try { CharBuffer chars = CharBuffer.allocate(unistr.length()); decoder.reset(); - byes.rewind(); + ((Buffer)byes).rewind(); for (int i = 1; i <= byteStr.length; i++) { - byes.limit(i); + ((Buffer)byes).limit(i); CoderResult result = decoder.decode(byes, chars, false); if (result.isError()) { errln("Error while decoding: "+result.toString()); @@ -1314,7 +1315,7 @@ public class TestCharset extends TestFmw if(result.isOverflow()){ errln("FromChars threw an overflow exception"); } - bytes.position(0); + ((Buffer)bytes).position(0); if (!bytes.equals(expected)) { errln("FromChars does not match"); printbytes(bytes); @@ -1334,7 +1335,7 @@ public class TestCharset extends TestFmw encoder.reset(); CoderResult result= null; for (int i = 1; i <= unistr.length(); i++) { - c.limit(i); + ((Buffer)c).limit(i); result = encoder.encode(c, bytes, false); if(result.isOverflow()){ errln("FromChars single threw an overflow exception"); @@ -1348,7 +1349,7 @@ public class TestCharset extends TestFmw rc = 3; } - bytes.position(0); + ((Buffer)bytes).position(0); if (!bytes.equals(expected)) { errln("FromChars single does not match"); printbytes(bytes); @@ -1402,11 +1403,11 @@ public class TestCharset extends TestFmw int i; char[] chars = new char[buf.limit()]; //save the current position - int pos = buf.position(); - buf.position(0); + int pos = ((Buffer)buf).position(); + ((Buffer)buf).position(0); buf.get(chars); //reset to old position - buf.position(pos); + ((Buffer)buf).position(pos); for (i = 0; i < chars.length; i++) { err(hex(chars[i]) + " "); } @@ -1424,10 +1425,10 @@ public class TestCharset extends TestFmw byte[] bytes = new byte[buf.limit()]; //save the current position int pos = buf.position(); - buf.position(0); + ((Buffer)buf).position(0); buf.get(bytes); //reset to old position - buf.position(pos); + ((Buffer)buf).position(pos); for (i = 0; i < bytes.length; i++) { System.out.print(hex(bytes[i]) + " "); } @@ -1464,10 +1465,10 @@ public class TestCharset extends TestFmw char[] chars = new char[buf.limit()]; //save the current position int pos = buf.position(); - buf.position(0); + ((Buffer)buf).position(0); buf.get(chars); //reset to old position - buf.position(pos); + ((Buffer)buf).position(pos); return equals(chars, compareTo); } @@ -1501,10 +1502,10 @@ public class TestCharset extends TestFmw byte[] chars = new byte[buf.limit()]; //save the current position int pos = buf.position(); - buf.position(0); + ((Buffer)buf).position(0); buf.get(chars); //reset to old position - buf.position(pos); + ((Buffer)buf).position(pos); return equals(chars, compareTo); } public boolean equals(ByteBuffer buf, ByteBuffer compareTo) { @@ -1736,7 +1737,7 @@ public class TestCharset extends TestFmw buffer.put(unibytes); //reset position - buffer.flip(); + ((Buffer)buffer).flip(); decoder.onMalformedInput(CodingErrorAction.REPLACE); CharBuffer out = decoder.decode(buffer); @@ -1803,8 +1804,8 @@ public class TestCharset extends TestFmw errln("FAIL: \\ud800 is OK for ICU4JNI utf-8 encoder"); } - in.position(0); - out.clear(); + ((Buffer)in).position(0); + ((Buffer)out).clear(); CharsetEncoder encoderJDK = Charset.forName("utf-8").newEncoder(); result = encoderJDK.encode(in, out, true); @@ -1855,9 +1856,9 @@ public class TestCharset extends TestFmw inBuf.put(in); CharsetEncoder encoder = cs.newEncoder(); ByteBuffer outBuf = ByteBuffer.allocate(in.length*2+2); - inBuf.rewind(); + ((Buffer)inBuf).rewind(); encoder.encode(inBuf, outBuf, true); - outBuf.rewind(); + ((Buffer)outBuf).rewind(); if(outBuf.get(0)!= (byte)0xFE && outBuf.get(1)!= (byte)0xFF){ errln("The UTF16 encoder did not appended bom. Length returned: " + outBuf.remaining()); } @@ -1865,7 +1866,7 @@ public class TestCharset extends TestFmw logln("0x"+hex(outBuf.get())); } CharsetDecoder decoder = cs.newDecoder(); - outBuf.rewind(); + ((Buffer)outBuf).rewind(); CharBuffer rt = CharBuffer.allocate(in.length); CoderResult cr = decoder.decode(outBuf, rt, true); if(cr.isError()){ @@ -1873,8 +1874,8 @@ public class TestCharset extends TestFmw } equals(rt, in); { - rt.clear(); - outBuf.rewind(); + ((Buffer)rt).clear(); + ((Buffer)outBuf).rewind(); Charset utf16 = Charset.forName("UTF-16"); CharsetDecoder dc = utf16.newDecoder(); cr = dc.decode(outBuf, rt, true); @@ -1912,9 +1913,9 @@ public class TestCharset extends TestFmw { decoder.reset(); - myTarget.limit(target.limit()); - mySource.limit(source.limit()); - mySource.position(source.position()); + ((Buffer)myTarget).limit(target.limit()); + ((Buffer)mySource).limit(source.limit()); + ((Buffer)mySource).position(source.position()); CoderResult result = CoderResult.UNDERFLOW; result = decoder.decode(mySource, myTarget, true); if (flush) { @@ -1934,9 +1935,9 @@ public class TestCharset extends TestFmw errln("Test complete buffers while decoding threw overflow exception"); return; } - myTarget.limit(myTarget.position()); - myTarget.position(0); - target.position(0); + ((Buffer)myTarget).limit(myTarget.position()); + ((Buffer)myTarget).position(0); + ((Buffer)target).position(0); if (result.isUnderflow() && !equals(myTarget, target, targetLimit)) { errln(" Test complete buffers while decoding " + encoding + " TO Unicode--failed"); } @@ -1946,11 +1947,11 @@ public class TestCharset extends TestFmw } { decoder.reset(); - myTarget.limit(target.position()); - mySource.limit(source.position()); - mySource.position(source.position()); - myTarget.clear(); - myTarget.position(0); + ((Buffer)myTarget).limit(target.position()); + ((Buffer)mySource).limit(source.position()); + ((Buffer)mySource).position(source.position()); + ((Buffer)myTarget).clear(); + ((Buffer)myTarget).position(0); int inputLen = mySource.remaining(); @@ -1981,18 +1982,18 @@ public class TestCharset extends TestFmw } { decoder.reset(); - myTarget.limit(0); - mySource.limit(0); - mySource.position(source.position()); - myTarget.clear(); + ((Buffer)myTarget).limit(0); + ((Buffer)mySource).limit(0); + ((Buffer)mySource).position(source.position()); + ((Buffer)myTarget).clear(); while (true) { CoderResult result = decoder.decode(mySource, myTarget, false); if (result.isUnderflow()) { if (mySource.limit() < source.limit()) - mySource.limit(mySource.limit() + 1); + ((Buffer)mySource).limit(mySource.limit() + 1); } else if (result.isOverflow()) { if (myTarget.limit() < target.limit()) - myTarget.limit(myTarget.limit() + 1); + ((Buffer)myTarget).limit(myTarget.limit() + 1); else break; } else /*if (result.isError())*/ { @@ -2041,17 +2042,17 @@ public class TestCharset extends TestFmw mySource = ByteBuffer.allocateDirect(source.capacity() * 2).asCharBuffer(); myTarget = ByteBuffer.allocateDirect(target.capacity()); } - mySource.position(source.position()); + ((Buffer)mySource).position(source.position()); for (int i = source.position(); i < source.limit(); i++) mySource.put(i, source.get(i)); - myTarget.clear(); + ((Buffer)myTarget).clear(); { logln("Running tests on small input buffers for " + encoding); encoder.reset(); - myTarget.limit(target.limit()); - mySource.limit(source.limit()); - mySource.position(source.position()); + ((Buffer)myTarget).limit(target.limit()); + ((Buffer)mySource).limit(source.limit()); + ((Buffer)mySource).position(source.position()); CoderResult result = null; result = encoder.encode(mySource, myTarget, true); @@ -2084,10 +2085,10 @@ public class TestCharset extends TestFmw { logln("Running tests on small input buffers for " + encoding); encoder.reset(); - myTarget.clear(); - myTarget.limit(target.limit()); - mySource.limit(source.limit()); - mySource.position(source.position()); + ((Buffer)myTarget).clear(); + ((Buffer)myTarget).limit(target.limit()); + ((Buffer)mySource).limit(source.limit()); + ((Buffer)mySource).position(source.position()); int inputLen = mySource.limit(); CoderResult result = null; for (int i = 1; i <= inputLen; i++) { @@ -2112,12 +2113,12 @@ public class TestCharset extends TestFmw { logln("Running tests on small output buffers for " + encoding); encoder.reset(); - myTarget.clear(); - myTarget.limit(target.limit()); - mySource.limit(source.limit()); - mySource.position(source.position()); - mySource.position(0); - myTarget.position(0); + ((Buffer)myTarget).clear(); + ((Buffer)myTarget).limit(target.limit()); + ((Buffer)mySource).limit(source.limit()); + ((Buffer)mySource).position(source.position()); + ((Buffer)mySource).position(0); + ((Buffer)myTarget).position(0); logln("myTarget.limit: " + myTarget.limit() + " myTarget.capcity: " + myTarget.capacity()); @@ -2137,7 +2138,7 @@ public class TestCharset extends TestFmw errln("Test small output buffers while encoding " + result.toString()); } - myTarget.limit(myTarget.capacity()); + ((Buffer)myTarget).limit(myTarget.capacity()); result = encoder.flush(myTarget); if (result.isError()) { errln("Test small output buffers while encoding " + result.toString()); @@ -2563,8 +2564,8 @@ public class TestCharset extends TestFmw in.put((byte)i); i++; } - in.limit(in.position()); - in.position(0); + ((Buffer)in).limit(in.position()); + ((Buffer)in).position(0); CharsetDecoder decoder = cs.newDecoder(); decoder.onMalformedInput(CodingErrorAction.IGNORE); decoder.onUnmappableCharacter(CodingErrorAction.REPORT); @@ -2596,9 +2597,9 @@ public class TestCharset extends TestFmw inBuf.put(in); CharsetEncoder encoder = cs.newEncoder(); ByteBuffer outBuf = ByteBuffer.allocate(in.length*4+4); - inBuf.rewind(); + ((Buffer)inBuf).rewind(); encoder.encode(inBuf, outBuf, true); - outBuf.rewind(); + ((Buffer)outBuf).rewind(); if(outBuf.get(0)!= (byte)0x00 && outBuf.get(1)!= (byte)0x00 && outBuf.get(2)!= (byte)0xFF && outBuf.get(3)!= (byte)0xFE){ errln("The UTF32 encoder did not appended bom. Length returned: " + outBuf.remaining()); @@ -2607,8 +2608,8 @@ public class TestCharset extends TestFmw logln("0x"+hex(outBuf.get())); } CharsetDecoder decoder = cs.newDecoder(); - outBuf.limit(outBuf.position()); - outBuf.rewind(); + ((Buffer)outBuf).limit(outBuf.position()); + ((Buffer)outBuf).rewind(); CharBuffer rt = CharBuffer.allocate(in.length); CoderResult cr = decoder.decode(outBuf, rt, true); if(cr.isError()){ @@ -2616,8 +2617,8 @@ public class TestCharset extends TestFmw } equals(rt, in); try{ - rt.clear(); - outBuf.rewind(); + ((Buffer)rt).clear(); + ((Buffer)outBuf).rewind(); Charset utf16 = Charset.forName("UTF-32"); CharsetDecoder dc = utf16.newDecoder(); cr = dc.decode(outBuf, rt, true); @@ -2745,16 +2746,16 @@ public class TestCharset extends TestFmw byteBuffer.put((byte)j); } - byteBuffer.limit(byteBufferLimit = byteBuffer.position()); - byteBuffer.position(0); - charBuffer.limit(charBufferLimit = charBuffer.position()); - charBuffer.position(0); + ((Buffer)byteBuffer).limit(byteBufferLimit = byteBuffer.position()); + ((Buffer)byteBuffer).position(0); + ((Buffer)charBuffer).limit(charBufferLimit = charBuffer.position()); + ((Buffer)charBuffer).position(0); //test for overflow - byteBufferTest.limit(byteBufferLimit - 5); - byteBufferTest.position(0); - charBufferTest.limit(charBufferLimit - 5); - charBufferTest.position(0); + ((Buffer)byteBufferTest).limit(byteBufferLimit - 5); + ((Buffer)byteBufferTest).position(0); + ((Buffer)charBufferTest).limit(charBufferLimit - 5); + ((Buffer)charBufferTest).position(0); try { smBufDecode(decoder, "ASCII", byteBuffer, charBufferTest, true, false); errln("Overflow exception while decoding ASCII should have been thrown."); @@ -2806,10 +2807,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x49); bs.put((byte)0x44); bs.put((byte)0x6b); bs.put((byte)0x51); bs.put((byte)0x4f); bs.put((byte)0x62); bs.put((byte)0x2e); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); smBufDecode(decoder, "UTF-7", bs, us); smBufEncode(encoder, "UTF-7", us, bs); @@ -2855,10 +2856,10 @@ public class TestCharset extends TestFmw ccbs.put((byte)0x0D); ccbs.put((byte)0x05); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-1", ccbs, ccus, true, false); @@ -2867,17 +2868,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for illegal base64 character ccbs.put((byte)0x2b); ccbs.put((byte)0xff); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-2", ccbs, ccus, true, false); @@ -2886,17 +2887,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for illegal order of the base64 character sequence ccbs.put((byte)0x2b); ccbs.put((byte)0x2d); ccbs.put((byte)0x2b); ccbs.put((byte)0x49); ccbs.put((byte)0x2d); ccus.put((char)0x0000); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-3", ccbs, ccus, true, false); @@ -2905,17 +2906,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for illegal order of the base64 character sequence ccbs.put((byte)0x2b); ccbs.put((byte)0x0a); ccbs.put((byte)0x09); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-4", ccbs, ccus, true, false); @@ -2924,17 +2925,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for illegal order of the base64 character sequence ccbs.put((byte)0x2b); ccbs.put((byte)0x49); ccbs.put((byte)0x0a); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-5", ccbs, ccus, true, false); @@ -2943,17 +2944,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for illegal order of the base64 character sequence ccbs.put((byte)0x2b); ccbs.put((byte)0x00); ccus.put((char)0x0000); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-6", ccbs, ccus, true, false); @@ -2962,16 +2963,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccbs.put((byte)0x2b); ccbs.put((byte)0x49); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(0); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(0); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-7", ccbs, ccus, true, false); @@ -2980,16 +2981,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccbs.put((byte)0x0c); ccbs.put((byte)0x0c); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(0); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(0); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "UTF-7-CC-DE-8", ccbs, ccus, true, false); @@ -3000,16 +3001,16 @@ public class TestCharset extends TestFmw //end of charset decoder code coverage code //start of charset encoder code coverage code - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x002b); ccbs.put((byte)0x2b); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-1", ccus, ccbs, true, false); @@ -3018,17 +3019,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x002b); ccus.put((char)0x2262); ccbs.put((byte)0x2b); ccbs.put((byte)0x2d); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-2", ccus, ccbs, true, false); @@ -3037,16 +3038,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0049); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-3", ccus, ccbs, true, false); @@ -3055,16 +3056,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0395); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-4", ccus, ccbs, true, false); @@ -3073,16 +3074,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0395); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-5", ccus, ccbs, true, false); @@ -3091,16 +3092,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0395); ccus.put((char)0x0391); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-6", ccus, ccbs, true, false); @@ -3109,17 +3110,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0395); ccus.put((char)0x0391); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-7", ccus, ccbs, true, false); @@ -3128,16 +3129,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x0049); ccus.put((char)0x0048); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-8", ccus, ccbs, true, false); @@ -3146,16 +3147,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-9", ccus, ccbs, true, false); @@ -3164,16 +3165,16 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccus.put((char)0x0049); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-10", ccus, ccbs, true, false); @@ -3182,35 +3183,35 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error ccus.put((char)0x2262); ccbs.put((byte)0x2b); ccbs.put((byte)0x49); ccbs.put((byte)0x6d); ccbs.put((byte)0x49); ccbs.put((byte)0x2d); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufEncode(encoder, "UTF-7-CC-EN-11", ccus, ccbs, false, true); } catch (Exception ex) { errln("Exception while encoding UTF-7 code coverage test should not have been thrown."); } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test for overflow buffer error encoder.reset(); ccus.put((char)0x3980); ccus.put((char)0x2715); ccbs.put((byte)0x2b); ccbs.put((byte)0x4f); ccbs.put((byte)0x59); ccbs.put((byte)0x2d); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); result = encoder.encode(ccus, ccbs, true); result = encoder.flush(ccbs); @@ -3394,12 +3395,12 @@ public class TestCharset extends TestFmw bsr.put((byte)0xBF); bsr.put((byte)0xE9); bsr.put((byte)0xC0); bsr.put((byte)0xE9); bsr.put((byte)0xC9); bsr.put((byte)0xE9); bsr.put((byte)0xD9); bsr.put((byte)0xE8); bsr.put((byte)0xCF); bsr.put((byte)0x00); bsr.put((byte)0xA0); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); - bsr.limit(bsr.position()); - bsr.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bsr).limit(bsr.position()); + ((Buffer)bsr).position(0); //round trip test try { @@ -3427,15 +3428,15 @@ public class TestCharset extends TestFmw us.put(u_pts); bs.put(b_pts); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufDecode(decoder, "ISCII-update", bs, us, true, true); - bs.position(0); - us.position(0); + ((Buffer)bs).position(0); + ((Buffer)us).position(0); smBufEncode(encoder, "ISCII-update", us, bs, true, true); } catch (Exception ex) { errln("Error occurred while encoding/decoding ISCII with the new characters."); @@ -3449,10 +3450,10 @@ public class TestCharset extends TestFmw //test overflow buffer ccbs.put((byte)0x49); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(0); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(0); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "ISCII-CC-DE-1", ccbs, ccus, true, false); @@ -3461,17 +3462,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test atr overflow buffer ccbs.put((byte)0xEF); ccbs.put((byte)0x40); ccbs.put((byte)0xEF); ccbs.put((byte)0x20); ccus.put((char)0x00); - ccbs.limit(ccbs.position()); - ccbs.position(0); - ccus.limit(ccus.position()); - ccus.position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); try { smBufDecode(decoder, "ISCII-CC-DE-2", ccbs, ccus, true, false); @@ -3482,17 +3483,17 @@ public class TestCharset extends TestFmw //end of charset decoder code coverage code - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //start of charset encoder code coverage code //test ascii overflow buffer ccus.put((char)0x41); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(0); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(0); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-1", ccus, ccbs, true, false); @@ -3501,17 +3502,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test ascii overflow buffer ccus.put((char)0x0A); ccus.put((char)0x0043); ccbs.put((byte)0x00); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-2", ccus, ccbs, true, false); @@ -3520,17 +3521,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test surrogate malform ccus.put((char)0x06E3); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-3", ccus, ccbs, true, false); @@ -3539,17 +3540,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test surrogate malform ccus.put((char)0xD801); ccus.put((char)0xDD01); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-4", ccus, ccbs, true, false); @@ -3558,17 +3559,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test trail surrogate malform ccus.put((char)0xDD01); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-5", ccus, ccbs, true, false); @@ -3577,17 +3578,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccbs.clear(); - ccus.clear(); + ((Buffer)ccbs).clear(); + ((Buffer)ccus).clear(); //test lead surrogates malform ccus.put((char)0xD801); ccus.put((char)0xD802); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); try { smBufEncode(encoder, "ISCII-CC-EN-6", ccus, ccbs, true, false); @@ -3596,17 +3597,17 @@ public class TestCharset extends TestFmw catch (Exception ex) { } - ccus.clear(); - ccbs.clear(); + ((Buffer)ccus).clear(); + ((Buffer)ccbs).clear(); //test overflow buffer ccus.put((char)0x0901); ccbs.put((byte)0x00); - ccus.limit(ccus.position()); - ccus.position(0); - ccbs.limit(ccbs.position()); - ccbs.position(0); + ((Buffer)ccus).limit(ccus.position()); + ((Buffer)ccus).position(0); + ((Buffer)ccbs).limit(ccbs.position()); + ((Buffer)ccbs).position(0); cs = provider.charsetForName("ISCII,version=0"); encoder = cs.newEncoder(); @@ -3637,27 +3638,27 @@ public class TestCharset extends TestFmw bs.put((byte)0x41); bs.put((byte)0x2D); bs.put((byte)0x41); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); smBufDecode(decoder, "IMAP", bs, us); smBufEncode(encoder, "IMAP", us, bs); //the rest of the code in this method is for better code coverage - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //start of charset encoder code coverage //test buffer overflow us.put((char)0x0026); us.put((char)0x17A9); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-1", us, bs, true, false); @@ -3665,17 +3666,17 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-2", us, bs, true, false); @@ -3683,17 +3684,17 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-3", us, bs, true, false); @@ -3701,18 +3702,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); us.put((char)0x0955); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-4", us, bs, true, false); @@ -3720,18 +3721,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); us.put((char)0x0955); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-5", us, bs, true, false); @@ -3739,18 +3740,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); us.put((char)0x0955); us.put((char)0x0970); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-6", us, bs, true, false); @@ -3758,18 +3759,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test buffer overflow us.put((char)0x17A9); us.put((char)0x0941); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-7", us, bs, true, true); @@ -3777,18 +3778,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test flushing us.put((char)0x17A9); us.put((char)0x0941); bs.put((byte)0x26); bs.put((byte)0x46); bs.put((byte)0x36); bs.put((byte)0x6b); bs.put((byte)0x4a); bs.put((byte)0x51); bs.put((byte)0x51); bs.put((byte)0x2d); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-8", us, bs, true, true); @@ -3803,10 +3804,10 @@ public class TestCharset extends TestFmw us.put((char)0x0061); bs.put((byte)0x61); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "IMAP-EN-9", us, bs, true, true); @@ -3823,10 +3824,10 @@ public class TestCharset extends TestFmw us.put((char)0x0000); us.put((char)0x0000); bs.put((byte)0x26); bs.put((byte)0x41); bs.put((byte)0x43); bs.put((byte)0x41); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufDecode(decoder, "IMAP-DE-1", bs, us, true, false); @@ -3834,18 +3835,18 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform case 5 us.put((char)0x0000); us.put((char)0x0000); us.put((char)0x0000); bs.put((byte)0x26); bs.put((byte)0x41); bs.put((byte)0x41); bs.put((byte)0x41); bs.put((byte)0x41); bs.put((byte)0x49); bs.put((byte)0x41); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufDecode(decoder, "IMAP-DE-2", bs, us, true, false); @@ -3853,8 +3854,8 @@ public class TestCharset extends TestFmw } catch(Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform case 7 us.put((char)0x0000); us.put((char)0x0000); us.put((char)0x0000); us.put((char)0x0000); @@ -3862,10 +3863,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x41); bs.put((byte)0x41); bs.put((byte)0x41); bs.put((byte)0x42); bs.put((byte)0x41); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufDecode(decoder, "IMAP-DE-3", bs, us, true, false); @@ -3892,10 +3893,10 @@ public class TestCharset extends TestFmw us.put((char)0xD901); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "UTF32LE-EN-1", us, bs, true, false); @@ -3903,17 +3904,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform surrogate us.put((char)0xD901); us.put((char)0xD902); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); result = encoder.encode(us, bs, true); @@ -3921,18 +3922,18 @@ public class TestCharset extends TestFmw errln("Error while encoding UTF32LE (2) should have occurred."); } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test overflow trail surrogate us.put((char)0xDD01); us.put((char)0xDD0E); us.put((char)0xDD0E); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); result = encoder.encode(us, bs, true); @@ -3940,17 +3941,17 @@ public class TestCharset extends TestFmw errln("Error while encoding UTF32LE (3) should have occurred."); } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform lead surrogate us.put((char)0xD90D); us.put((char)0xD90E); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "UTF32LE-EN-4", us, bs, true, false); @@ -3958,17 +3959,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test overflow buffer us.put((char)0x0061); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "UTF32LE-EN-5", us, bs, true, false); @@ -3976,17 +3977,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform trail surrogate us.put((char)0xDD01); bs.put((byte)0x00); - bs.limit(bs.position()); - bs.position(0); - us.limit(us.position()); - us.position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); try { smBufEncode(encoder, "UTF32LE-EN-6", us, bs, true, false); @@ -4021,10 +4022,10 @@ public class TestCharset extends TestFmw us.put(u_pts1); bs.put(b_pts1); - us.limit(1); - us.position(0); - bs.limit(1); - bs.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); @@ -4034,10 +4035,10 @@ public class TestCharset extends TestFmw } // Test for malform surrogate from previous buffer - us.limit(4); - us.position(1); - bs.limit(7); - bs.position(1); + ((Buffer)us).limit(4); + ((Buffer)us).position(1); + ((Buffer)bs).limit(7); + ((Buffer)bs).position(1); result = encoder.encode(us, bs, true); @@ -4048,17 +4049,17 @@ public class TestCharset extends TestFmw // Test for malform trail surrogate encoder.reset(); - us.limit(1); - us.position(0); - bs.limit(1); - bs.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); - us.limit(6); - us.position(4); - bs.limit(4); - bs.position(1); + ((Buffer)us).limit(6); + ((Buffer)us).position(4); + ((Buffer)bs).limit(4); + ((Buffer)bs).position(1); result = encoder.encode(us, bs, true); @@ -4099,10 +4100,10 @@ public class TestCharset extends TestFmw us.put(us_array); bs.put(bs_array1); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF32-DE-1", bs, us, true, false); @@ -4115,10 +4116,10 @@ public class TestCharset extends TestFmw bs = ByteBuffer.allocate(bs_array2.length); bs.put(bs_array2); - us.limit(4); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(4); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF32-DE-2", bs, us, true, false); @@ -4128,16 +4129,16 @@ public class TestCharset extends TestFmw } //Test malform exception - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); bs.put((byte)0x00); bs.put((byte)0xFE); bs.put((byte)0xFF); bs.put((byte)0x00); bs.put((byte)0x00); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF32-DE-3", bs, us, true, false); @@ -4146,16 +4147,16 @@ public class TestCharset extends TestFmw } //Test BOM testing - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xFF); bs.put((byte)0xFE); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF32-DE-4", bs, us, true, false); @@ -4173,10 +4174,10 @@ public class TestCharset extends TestFmw us.put((char)0xDC01); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); // must try to output BOM first for UTF-32 (not UTF-32BE or UTF-32LE) @@ -4184,86 +4185,86 @@ public class TestCharset extends TestFmw errln("Buffer overflow error while encoding UTF32 charset (1) should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform surrogate and store value in fromChar32 us.put((char)0xD801); us.put((char)0xD802); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isMalformed()) { errln("Malformed error while encoding UTF32 charset (2) should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform surrogate us.put((char)0x0000); us.put((char)0xD902); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow error while encoding UTF32 charset (3) should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform surrogate encoder.reset(); us.put((char)0xD801); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isMalformed()) { errln("Malform error while encoding UTF32 charset (4) should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test overflow surrogate us.put((char)0x0000); us.put((char)0xDDE1); us.put((char)0xD915); us.put((char)0xDDF2); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow error while encoding UTF32 charset (5) should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform surrogate encoder.reset(); us.put((char)0xDDE1); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isMalformed()) { @@ -4287,10 +4288,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x41); bs.put((byte)0xFF); bs.put((byte)0x01); bs.put((byte)0x00); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32LE", bs, us, true, false); @@ -4298,8 +4299,8 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } // test overflow buffer handling in CharsetDecoderICU - bs.position(0); - us.position(0); + ((Buffer)bs).position(0); + ((Buffer)us).position(0); decoder.reset(); result = decoder.decode(bs, us, true); if (result.isOverflow()) { @@ -4311,16 +4312,16 @@ public class TestCharset extends TestFmw errln("Overflow buffer error while decoding UTF32LE should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform buffer bs.put((byte)0x02); bs.put((byte)0xD9); bs.put((byte)0x00); bs.put((byte)0x00); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32LE", bs, us, true, false); @@ -4328,17 +4329,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform buffer bs.put((byte)0xFF); bs.put((byte)0xFE); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xFF); bs.put((byte)0xDF); bs.put((byte)0x10); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { // must flush in order to exhibit malformed behavior @@ -4347,17 +4348,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform buffer bs.put((byte)0xFF); bs.put((byte)0xFE); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x02); bs.put((byte)0xD9); bs.put((byte)0x00); bs.put((byte)0x00); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32LE", bs, us, true, false); @@ -4365,17 +4366,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test overflow buffer bs.put((byte)0xFF); bs.put((byte)0xFE); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xDD); bs.put((byte)0xFF); bs.put((byte)0x10); bs.put((byte)0x00); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32LE", bs, us, true, false); @@ -4384,8 +4385,8 @@ public class TestCharset extends TestFmw } //end of decode UTF32LE - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //decode UTF32BE decoder = provider.charsetForName("UTF-32BE").newDecoder(); @@ -4393,10 +4394,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x00); bs.put((byte)0x01); bs.put((byte)0xFF); bs.put((byte)0x41); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32BE", bs, us, true, false); @@ -4404,16 +4405,16 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform buffer bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xD9); bs.put((byte)0x02); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32BE", bs, us, true, false); @@ -4421,17 +4422,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform buffer bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xFE); bs.put((byte)0xFF); bs.put((byte)0x10); bs.put((byte)0xFF); bs.put((byte)0xDF); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { // must flush to exhibit malformed behavior @@ -4440,17 +4441,17 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test overflow buffer bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xFE); bs.put((byte)0xFF); bs.put((byte)0x00); bs.put((byte)0x10); bs.put((byte)0xFF); bs.put((byte)0xDD); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { smBufDecode(decoder, "UTF-32BE", bs, us, true, false); @@ -4458,16 +4459,16 @@ public class TestCharset extends TestFmw } catch (Exception ex) { } - bs.clear(); - us.clear(); + ((Buffer)bs).clear(); + ((Buffer)us).clear(); //test malform buffer bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0xFE); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); try { // must flush to exhibit malformed behavior @@ -4502,10 +4503,10 @@ public class TestCharset extends TestFmw limit_us = us.position(); limit_bs = bs.position(); - us.limit(limit_us); - us.position(0); - bs.limit(limit_bs); - bs.position(0); + ((Buffer)us).limit(limit_us); + ((Buffer)us).position(0); + ((Buffer)bs).limit(limit_bs); + ((Buffer)bs).position(0); bs2 = bs.asReadOnlyBuffer(); us2 = us.asReadOnlyBuffer(); @@ -4514,18 +4515,18 @@ public class TestCharset extends TestFmw errln("Error while decoding UTF-8 (1) should not have occured."); } - us2.limit(limit_us); - us2.position(0); - bs.limit(limit_bs); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(limit_bs); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isUnderflow() || !equals(bs, bs2)) { errln("Error while encoding UTF-8 (1) should not have occured."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test overflow buffer while encoding //readonly buffer @@ -4534,10 +4535,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); limit_us = us.position(); us2 = us.asReadOnlyBuffer(); - us2.limit(limit_us); - us2.position(0); - bs.limit(1); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (2)."); @@ -4545,10 +4546,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(1); - bs.limit(1); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(1); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (3)."); @@ -4556,10 +4557,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(1); - bs.limit(2); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(1); + ((Buffer)bs).limit(2); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (4)."); @@ -4567,10 +4568,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(0); - bs.limit(2); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(2); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (5)."); @@ -4579,10 +4580,10 @@ public class TestCharset extends TestFmw //not readonly buffer encoder.reset(); - us.limit(limit_us); - us.position(0); - bs.limit(1); - bs.position(0); + ((Buffer)us).limit(limit_us); + ((Buffer)us).position(0); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (6)."); @@ -4590,10 +4591,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us.limit(limit_us); - us.position(0); - bs.limit(3); - bs.position(0); + ((Buffer)us).limit(limit_us); + ((Buffer)us).position(0); + ((Buffer)bs).limit(3); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (7)."); @@ -4601,10 +4602,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us.limit(limit_us); - us.position(1); - bs.limit(2); - bs.position(0); + ((Buffer)us).limit(limit_us); + ((Buffer)us).position(1); + ((Buffer)bs).limit(2); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (8)."); @@ -4612,17 +4613,17 @@ public class TestCharset extends TestFmw encoder.reset(); - us.limit(limit_us + 1); - us.position(1); - bs.limit(3); - bs.position(0); + ((Buffer)us).limit(limit_us + 1); + ((Buffer)us).position(1); + ((Buffer)bs).limit(3); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (9)."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test encoding 4 byte characters encoder.reset(); @@ -4630,10 +4631,10 @@ public class TestCharset extends TestFmw bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); bs.put((byte)0x00); limit_us = us.position(); us2 = us.asReadOnlyBuffer(); - us2.limit(limit_us); - us2.position(0); - bs.limit(1); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(1); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (10)."); @@ -4641,10 +4642,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(0); - bs.limit(2); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(2); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (11)."); @@ -4652,10 +4653,10 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(0); - bs.limit(3); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(3); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (12)."); @@ -4663,17 +4664,17 @@ public class TestCharset extends TestFmw encoder.reset(); - us2.limit(limit_us); - us2.position(0); - bs.limit(4); - bs.position(0); + ((Buffer)us2).limit(limit_us); + ((Buffer)us2).position(0); + ((Buffer)bs).limit(4); + ((Buffer)bs).position(0); result = encoder.encode(us2, bs, true); if (!result.isOverflow()) { errln("Overflow Error should have occured while encoding UTF-8 (13)."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //decoding code coverage //test malform error @@ -4682,10 +4683,10 @@ public class TestCharset extends TestFmw us.put((char)0x0000); bs2 = bs.asReadOnlyBuffer(); - us.limit(1); - us.position(0); - bs2.limit(1); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(1); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); result = decoder.flush(us); @@ -4693,68 +4694,68 @@ public class TestCharset extends TestFmw errln("Malform error should have occurred while decoding UTF-8 (1)."); } - us.limit(1); - us.position(0); - bs2.limit(1); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(1); + ((Buffer)bs2).position(0); decoder.reset(); result = decoder.decode(bs2, us, true); - us.limit(1); - us.position(0); - bs2.limit(2); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(2); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); if (!result.isMalformed()) { errln("Malform error should have occurred while decoding UTF-8 (2)."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test overflow buffer bs.put((byte)0x01); bs.put((byte)0x41); us.put((char)0x0000); bs2 = bs.asReadOnlyBuffer(); - us.limit(1); - us.position(0); - bs2.limit(2); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(2); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); if (!result.isOverflow()) { errln("Overflow error should have occurred while decoding UTF-8 (3)."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test malform string decoder.reset(); bs.put((byte)0xF5); bs.put((byte)0xB4); bs.put((byte)0x8A); bs.put((byte)0x8C); us.put((char)0x0000); bs2 = bs.asReadOnlyBuffer(); - us.limit(1); - us.position(0); - bs2.limit(4); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(4); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); if (!result.isMalformed()) { errln("Malform error should have occurred while decoding UTF-8 (4)."); } - bs.clear(); + ((Buffer)bs).clear(); //test overflow decoder.reset(); bs.put((byte)0xF3); bs.put((byte)0xB4); bs.put((byte)0x8A); bs.put((byte)0x8C); bs2 = bs.asReadOnlyBuffer(); - us.limit(1); - us.position(0); - bs2.limit(4); - bs2.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(4); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); if (!result.isOverflow()) { @@ -4763,10 +4764,10 @@ public class TestCharset extends TestFmw //test overflow decoder.reset(); - us.limit(2); - us.position(0); - bs2.limit(5); - bs2.position(0); + ((Buffer)us).limit(2); + ((Buffer)us).position(0); + ((Buffer)bs2).limit(5); + ((Buffer)bs2).position(0); result = decoder.decode(bs2, us, true); if (!result.isOverflow()) { @@ -4775,25 +4776,25 @@ public class TestCharset extends TestFmw //test overflow decoder.reset(); - us.limit(1); - us.position(0); - bs.limit(5); - bs.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs).limit(5); + ((Buffer)bs).position(0); result = decoder.decode(bs, us, true); if (!result.isOverflow()) { errln("Overflow error should have occurred while decoding UTF-8 (6)."); } - bs.clear(); + ((Buffer)bs).clear(); //test overflow decoder.reset(); bs.put((byte)0x41); bs.put((byte)0x42); - us.limit(1); - us.position(0); - bs.limit(2); - bs.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs).limit(2); + ((Buffer)bs).position(0); result = decoder.decode(bs, us, true); if (!result.isOverflow()) { @@ -4817,10 +4818,10 @@ public class TestCharset extends TestFmw bs.put((byte)0xFF); us.put((char)0x0000); - us.limit(us.position()); - us.position(0); - bs.limit(bs.position()); - bs.position(0); + ((Buffer)us).limit(us.position()); + ((Buffer)us).position(0); + ((Buffer)bs).limit(bs.position()); + ((Buffer)bs).position(0); result = decoder.decode(bs, us, true); result = decoder.flush(us); @@ -4828,28 +4829,28 @@ public class TestCharset extends TestFmw errln("Malform error while decoding UTF-16 should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); us.put((char)0xD902); us.put((char)0xDD01); us.put((char)0x0041); - us.limit(1); - us.position(0); - bs.limit(4); - bs.position(0); + ((Buffer)us).limit(1); + ((Buffer)us).position(0); + ((Buffer)bs).limit(4); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); - us.limit(3); - us.position(0); - bs.limit(3); - bs.position(0); + ((Buffer)us).limit(3); + ((Buffer)us).position(0); + ((Buffer)bs).limit(3); + ((Buffer)bs).position(0); result = encoder.encode(us, bs, true); if (!result.isOverflow()) { errln("Overflow buffer while encoding UTF-16 should have occurred."); } - us.clear(); - bs.clear(); + ((Buffer)us).clear(); + ((Buffer)bs).clear(); //test overflow buffer decoder.reset(); @@ -4857,10 +4858,10 @@ public class TestCharset extends TestFmw bs.put((byte)0xFF); bs.put((byte)0xFE); bs.put((byte)0x41); - us.limit(0); - us.position(0); - bs.limit(3); - bs.position(0); + ((Buffer)us).limit(0); + ((Buffer)us).position(0); + ((Buffer)bs).limit(3); + ((Buffer)bs).position(0); result = decoder.decode(bs, us, true); if (!result.isOverflow()) { @@ -5111,20 +5112,20 @@ public class TestCharset extends TestFmw ByteBuffer bb = ByteBuffer.wrap(bytearray); CharBuffer cb = CharBuffer.allocate(10); - bb.limit(4); - cb.limit(1); // Overflow should occur and is expected + ((Buffer)bb).limit(4); + ((Buffer)cb).limit(1); // Overflow should occur and is expected result = decoder.decode(bb, cb, false); if (result.isError()) { errln("Error occurred while decoding: " + charsetName + " with error: " + result); } - bb.limit(8); + ((Buffer)bb).limit(8); result = decoder.decode(bb, cb, false); if (result.isError()) { errln("Error occurred while decoding: " + charsetName + " with error: " + result); } - bb.limit(12); + ((Buffer)bb).limit(12); result = decoder.decode(bb, cb, true); if (result.isError()) { errln("Error occurred while decoding: " + charsetName + " with error: " + result); @@ -5139,18 +5140,18 @@ public class TestCharset extends TestFmw cb = CharBuffer.wrap(chararray); bb = ByteBuffer.allocate(10); - bb.limit(2); - cb.limit(4); + ((Buffer)bb).limit(2); + ((Buffer)cb).limit(4); result = encoder.encode(cb, bb, false); if (result.isError()) { errln("Error occurred while encoding: " + charsetName + " with error: " + result); } - cb.limit(5); + ((Buffer)cb).limit(5); result = encoder.encode(cb, bb, false); if (result.isError()) { errln("Error occurred while encoding: " + charsetName + " with error: " + result); } - cb.limit(6); + ((Buffer)cb).limit(6); result = encoder.encode(cb, bb, true); if (!result.isError()) { errln("Error should have occurred while encoding: " + charsetName); @@ -5337,21 +5338,21 @@ public class TestCharset extends TestFmw CharBuffer ubuf = CharBuffer.wrap(ccSrc[i]); encode.reset(); decode.reset(); - trgt.clear(); - test.clear(); + ((Buffer)trgt).clear(); + ((Buffer)test).clear(); ccResult = encode.encode(ubuf, trgt, true); if (ccResult.isError()) { errln("Error while encoding " + charset.name() + " in test for code coverage[" + i + "]."); } else { - trgt.limit(trgt.position()); - trgt.position(0); + ((Buffer)trgt).limit(trgt.position()); + ((Buffer)trgt).position(0); ccResult = decode.decode(trgt, test, true); if (ccResult.isError()) { errln("Error while decoding " + charset.name() + " in test for code coverage[" + i + "]."); } else { - ubuf.position(0); - test.limit(test.position()); - test.position(0); + ((Buffer)ubuf).position(0); + ((Buffer)test).limit(test.position()); + ((Buffer)test).position(0); if (!equals(test, ubuf)) { errln("Roundtrip failed for " + charset.name() + " in test for code coverage[" + i + "]."); } @@ -5513,7 +5514,7 @@ public class TestCharset extends TestFmw // Decoding CharBuffer decoderResult = decode.decode(decoderBuffer); - encoderBuffer.position(0); + ((Buffer)encoderBuffer).position(0); if(!decoderResult.equals(encoderBuffer)){ errln("Error occured while decoding "+ charset.name()); } @@ -5523,7 +5524,7 @@ public class TestCharset extends TestFmw ByteBuffer roundTrip = encoderResult; CharBuffer roundTripResult = decode.decode(roundTrip); - encoderBuffer.position(0); + ((Buffer)encoderBuffer).position(0); if(!roundTripResult.equals(encoderBuffer)){ errln("Error occured while encoding "+ charset.name()); } @@ -5647,10 +5648,10 @@ public class TestCharset extends TestFmw for (int n = 0; n < malformedLimits.length; n++) { malformedDecoderTest.reset(); - malformedSrc.position(0); - malformedSrc.limit(malformedLimits[n]); + ((Buffer)malformedSrc).position(0); + ((Buffer)malformedSrc).limit(malformedLimits[n]); - malformedTrgt.clear(); + ((Buffer)malformedTrgt).clear(); malformedResult = malformedDecoderTest.decode(malformedSrc,malformedTrgt, true); if (!malformedResult.isMalformed()) { @@ -5684,8 +5685,8 @@ public class TestCharset extends TestFmw } CharsetDecoder decoder = charset.newDecoder(); - src.position(0); - trgt.clear(); + ((Buffer)src).position(0); + ((Buffer)trgt).clear(); result = decoder.decode(src, trgt, true); if (result.isError()) { @@ -5785,14 +5786,14 @@ public class TestCharset extends TestFmw CharBuffer charBuffer = CharBuffer.allocate(firstLine.length() + secondLine.length()); charBuffer.put(firstLine); charBuffer.put(secondLine); - charBuffer.flip(); + ((Buffer)charBuffer).flip(); for (int i = 0; i < charsetNames.length; i++) { encoder = CharsetICU.forNameICU(charsetNames[i]).newEncoder(); - charBuffer.position(firstLine.length()); + ((Buffer)charBuffer).position(firstLine.length()); CharBuffer charBufferSlice = charBuffer.slice(); - charBufferSlice.limit(secondLine.length() - 2); + ((Buffer)charBufferSlice).limit(secondLine.length() - 2); try { --- a/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestConversion.java 2021-10-28 00:02:09.000000000 -0600 +++ b/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestConversion.java 2021-10-29 08:08:50.800614014 -0600 @@ -9,6 +9,7 @@ package com.ibm.icu.dev.test.charset; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; @@ -337,13 +338,13 @@ public class TestConversion extends Test try { out = encoder.encode(CharBuffer.wrap(cc.unicode.toCharArray())); - out.position(out.limit()); + ((Buffer)out).position(out.limit()); if (out.limit() != out.capacity() || cc.finalFlush) { int pos = out.position(); byte[] temp = out.array(); out = ByteBuffer.allocate(temp.length * 4); out.put(temp); - out.position(pos); + ((Buffer)out).position(pos); CoderResult cr = encoder.flush(out); if (cr.isOverflow()) { logln("Overflow error with flushing encoder"); @@ -391,8 +392,8 @@ public class TestConversion extends Test CoderResult cr = null; for (;;) { - source.limit(currentSourceLimit); - target.limit(currentTargetLimit); + ((Buffer)source).limit(currentSourceLimit); + ((Buffer)target).limit(currentTargetLimit); cr = encoder.encode(source, target, currentSourceLimit == sourceLen); @@ -404,8 +405,8 @@ public class TestConversion extends Test } // Do a final flush for cleanup, then break out // Encode loop, exits with cr==underflow in normal operation. - //target.limit(targetLen); - target.limit(targetLen); + //((Buffer)target).limit(targetLen); + ((Buffer)target).limit(targetLen); cr = encoder.flush(target); if (cr.isUnderflow()) { // good @@ -631,15 +632,15 @@ public class TestConversion extends Test CharBuffer out = null; try { - cc.bytes.rewind(); + ((Buffer)cc.bytes).rewind(); out = decoder.decode(cc.bytes); - out.position(out.limit()); + ((Buffer)out).position(out.limit()); if (out.limit() < cc.unicode.length()) { int pos = out.position(); char[] temp = out.array(); out = CharBuffer.allocate(cc.bytes.limit()); out.put(temp); - out.position(pos); + ((Buffer)out).position(pos); CoderResult cr = decoder.flush(out); if (cr.isOverflow()) { logln("Overflow error with flushing decodering"); @@ -677,9 +678,9 @@ public class TestConversion extends Test int sourceLen; source = cc.bytes; sourceLen = cc.bytes.limit(); - source.position(0); + ((Buffer)source).position(0); target = CharBuffer.allocate(cc.unicode.length() + 4); - target.position(0); + ((Buffer)target).position(0); cc.toUnicodeResult = null; decoder.reset(); @@ -691,15 +692,15 @@ public class TestConversion extends Test for (;;) { if (step != 0) { - source.limit((iStep <= sourceLen) ? iStep : sourceLen); - target.limit((oStep <= target.capacity()) ? oStep : target + ((Buffer)source).limit((iStep <= sourceLen) ? iStep : sourceLen); + ((Buffer)target).limit((oStep <= target.capacity()) ? oStep : target .capacity()); flush = (cc.finalFlush && source.limit() == sourceLen); } else { //bulk mode - source.limit(sourceLen); - target.limit(target.capacity()); + ((Buffer)source).limit(sourceLen); + ((Buffer)target).limit(target.capacity()); flush = cc.finalFlush; } // convert @@ -711,7 +712,7 @@ public class TestConversion extends Test if (cr.isOverflow()) { // the partial target is filled, set a new limit, oStep = (target.position() + step); - target.limit((oStep < target.capacity()) ? oStep + ((Buffer)target).limit((oStep < target.capacity()) ? oStep : target.capacity()); if (target.limit() > target.capacity()) { //target has reached its limit, an error occurred or test case has an error code @@ -736,7 +737,7 @@ public class TestConversion extends Test //due to limitation of the API we need to check for target limit for expected if (target.position() != cc.unicode.length()) { if (target.limit() != cc.unicode.length()) { - target.limit(cc.unicode.length()); + ((Buffer)target).limit(cc.unicode.length()); } cr = decoder.flush(target); if (cr.isError()) { @@ -765,14 +766,14 @@ public class TestConversion extends Test // convert if ((step & 1) != 0 /* odd: -1, -3, -5, ... */) { - target.limit(target.position() < target.capacity() ? target + ((Buffer)target).limit(target.position() < target.capacity() ? target .position() + 1 : target.capacity()); // decode behavior is return to output target 1 character CoderResult cr = null; //similar to getNextUChar() , input is the whole string, while outputs only 1 character - source.limit(sourceLen); + ((Buffer)source).limit(sourceLen); while (target.position() != target.limit() && source.hasRemaining()) { cr = decoder.decode(source, target, @@ -786,7 +787,7 @@ public class TestConversion extends Test break; } else { //1 character has been consumed - target.limit(target.position() + 1); + ((Buffer)target).limit(target.position() + 1); break; } } else if (cr.isError()) { @@ -801,7 +802,7 @@ public class TestConversion extends Test else { // one character has been consumed if (target.limit() == target.position()) { - target.limit(target.position() + 1); + ((Buffer)target).limit(target.position() + 1); break; } } @@ -814,7 +815,7 @@ public class TestConversion extends Test cr = decoder.decode(source, target, true); if (target.position() != cc.unicode.length()) { - target.limit(cc.unicode.length()); + ((Buffer)target).limit(cc.unicode.length()); cr = decoder.flush(target); if (cr.isError()) { errln("Flush operation failed"); @@ -829,14 +830,14 @@ public class TestConversion extends Test } else {/* step is even */ // allow only one UChar output - target.limit(target.position() < target.capacity() ? target + ((Buffer)target).limit(target.position() < target.capacity() ? target .position() + 1 : target.capacity()); if (step == -2) { - source.limit(sourceLen); + ((Buffer)source).limit(sourceLen); } else { - source.limit(source.position() + (-step - 2) / 2); + ((Buffer)source).limit(source.position() + (-step - 2) / 2); if (source.limit() > sourceLen) { - source.limit(sourceLen); + ((Buffer)source).limit(sourceLen); } } CoderResult cr = decoder.decode(source, target, source @@ -1003,43 +1004,43 @@ public class TestConversion extends Test if (start[0] == (byte) 0xFE && start[1] == (byte) 0xFF) { signatureLength = 2; sigUniCharset = "UTF-16BE"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[0] == (byte) 0xFF && start[1] == (byte) 0xFE) { if (start[2] == (byte) 0x00 && start[3] == (byte) 0x00) { signatureLength = 4; sigUniCharset = "UTF-32LE"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else { signatureLength = 2; sigUniCharset = "UTF-16LE"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } } else if (start[0] == (byte) 0xEF && start[1] == (byte) 0xBB && start[2] == (byte) 0xBF) { signatureLength = 3; sigUniCharset = "UTF-8"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[0] == (byte) 0x00 && start[1] == (byte) 0x00 && start[2] == (byte) 0xFE && start[3] == (byte) 0xFF) { signatureLength = 4; sigUniCharset = "UTF-32BE"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[0] == (byte) 0x0E && start[1] == (byte) 0xFE && start[2] == (byte) 0xFF) { signatureLength = 3; sigUniCharset = "SCSU"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[0] == (byte) 0xFB && start[1] == (byte) 0xEE && start[2] == (byte) 0x28) { signatureLength = 3; sigUniCharset = "BOCU-1"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[0] == (byte) 0x2B && start[1] == (byte) 0x2F && start[2] == (byte) 0x76) { @@ -1047,20 +1048,20 @@ public class TestConversion extends Test if (start[3] == (byte) 0x38 && start[4] == (byte) 0x2D) { signatureLength = 5; sigUniCharset = "UTF-7"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } else if (start[3] == (byte) 0x38 || start[3] == (byte) 0x39 || start[3] == (byte) 0x2B || start[3] == (byte) 0x2F) { signatureLength = 4; sigUniCharset = "UTF-7"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } } else if (start[0] == (byte) 0xDD && start[2] == (byte) 0x73 && start[2] == (byte) 0x66 && start[3] == (byte) 0x73) { signatureLength = 4; sigUniCharset = "UTF-EBCDIC"; - source.position(signatureLength); + ((Buffer)source).position(signatureLength); return sigUniCharset; } @@ -1074,7 +1075,7 @@ public class TestConversion extends Test for (int i = 0; i < pos; i++) { res += "(" + i + ")" + hex(buf.get(i) & 0xff).substring(2) + " "; } - buf.position(cur); + ((Buffer)buf).position(cur); return res + "]"; } @@ -1084,7 +1085,7 @@ public class TestConversion extends Test for (int i = 0; i < pos; i++) { res += "(" + i + ")" + hex(buf.get(i)) + " "; } - buf.position(cur); + ((Buffer)buf).position(cur); return res + "]"; } @@ -1092,9 +1093,9 @@ public class TestConversion extends Test ByteBuffer output) { boolean res = true; - expected.rewind(); - output.limit(output.position()); - output.rewind(); + ((Buffer)expected).rewind(); + ((Buffer)output).limit(output.position()); + ((Buffer)output).rewind(); // remove any BOM signature before checking if (!cc.charset.contains("UnicodeLittle") && !cc.charset.contains("UnicodeBig")) { @@ -1137,8 +1138,8 @@ public class TestConversion extends Test private boolean checkResultsToUnicode(ConversionCase cc, String expected, CharBuffer output) { boolean res = true; - output.limit(output.position()); - output.rewind(); + ((Buffer)output).limit(output.position()); + ((Buffer)output).rewind(); // test to see if the conversion matches actual results if (output.limit() != expected.length()) { --- a/main/tests/core/src/com/ibm/icu/dev/test/util/ICUBinaryTest.java 2021-10-28 00:02:10.000000000 -0600 +++ b/main/tests/core/src/com/ibm/icu/dev/test/util/ICUBinaryTest.java 2021-10-29 08:08:50.800614014 -0600 @@ -10,6 +10,7 @@ package com.ibm.icu.dev.test.util; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import org.junit.Test; @@ -88,7 +89,7 @@ public final class ICUBinaryTest extends } // no restriction to the data version try { - bytes.rewind(); + ((Buffer)bytes).rewind(); ICUBinary.readHeader(bytes, formatid, null); } catch (IOException e) { errln("Failed: Null authenticate object should pass ICUBinary.readHeader"); @@ -96,7 +97,7 @@ public final class ICUBinaryTest extends // lenient data version array[17] = 9; try { - bytes.rewind(); + ((Buffer)bytes).rewind(); ICUBinary.readHeader(bytes, formatid, authenticate); } catch (IOException e) { errln("Failed: Lenient authenticate object should pass ICUBinary.readHeader"); @@ -104,7 +105,7 @@ public final class ICUBinaryTest extends // changing the version to an incorrect one, expecting failure array[16] = 2; try { - bytes.rewind(); + ((Buffer)bytes).rewind(); ICUBinary.readHeader(bytes, formatid, authenticate); errln("Failed: Invalid version number should not pass authenticate object"); } catch (IOException e) { --- a/perf-tests/src/com/ibm/icu/dev/test/perf/ConverterPerformanceTest.java 2021-10-28 00:02:10.000000000 -0600 +++ b/perf-tests/src/com/ibm/icu/dev/test/perf/ConverterPerformanceTest.java 2021-10-29 08:08:50.801614013 -0600 @@ -13,6 +13,7 @@ import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; @@ -214,8 +215,8 @@ public class ConverterPerformanceTest ex try{ decoder.decode(srcBuf,outBuf,false); decoder.reset(); - srcBuf.rewind(); - outBuf.rewind(); + ((Buffer)srcBuf).rewind(); + ((Buffer)outBuf).rewind(); }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); @@ -243,8 +244,8 @@ public class ConverterPerformanceTest ex try{ encoder.encode(srcBuf,outBuf,false); encoder.reset(); - srcBuf.rewind(); - outBuf.rewind(); + ((Buffer)srcBuf).rewind(); + ((Buffer)outBuf).rewind(); }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); @@ -272,8 +273,8 @@ public class ConverterPerformanceTest ex try{ decoder.decode(srcBuf,outBuf,false); decoder.reset(); - srcBuf.rewind(); - outBuf.rewind(); + ((Buffer)srcBuf).rewind(); + ((Buffer)outBuf).rewind(); }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); @@ -301,8 +302,8 @@ public class ConverterPerformanceTest ex try{ encoder.encode(srcBuf,outBuf,false); encoder.reset(); - srcBuf.rewind(); - outBuf.rewind(); + ((Buffer)srcBuf).rewind(); + ((Buffer)outBuf).rewind(); }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage());
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor