diff --git a/src/org/jcodings/MultiByteEncoding.java b/src/org/jcodings/MultiByteEncoding.java index a667165..f2d7d85 100644 --- a/src/org/jcodings/MultiByteEncoding.java +++ b/src/org/jcodings/MultiByteEncoding.java @@ -201,6 +201,7 @@ protected final boolean mb4IsCodeCType(int code, int ctype) { } /* onigenc_strlen */ + @Override public int strLength(byte[]bytes, int p, int end) { int n = 0; int q = p; @@ -211,6 +212,7 @@ public int strLength(byte[]bytes, int p, int end) { return n; } + @Override public int strCodeAt(byte[]bytes, int p, int end, int index) { int n = 0; int q = p; diff --git a/src/org/jcodings/exception/CharacterPropertyException.java b/src/org/jcodings/exception/CharacterPropertyException.java index 59c660a..f628d10 100644 --- a/src/org/jcodings/exception/CharacterPropertyException.java +++ b/src/org/jcodings/exception/CharacterPropertyException.java @@ -21,7 +21,9 @@ public class CharacterPropertyException extends EncodingException { - public CharacterPropertyException(EncodingError error) { + private static final long serialVersionUID = 1L; + + public CharacterPropertyException(EncodingError error) { super(error); } diff --git a/src/org/jcodings/exception/EncodingException.java b/src/org/jcodings/exception/EncodingException.java index 592cae8..f85d8d3 100644 --- a/src/org/jcodings/exception/EncodingException.java +++ b/src/org/jcodings/exception/EncodingException.java @@ -20,6 +20,9 @@ package org.jcodings.exception; public class EncodingException extends JCodingsException { + + private static final long serialVersionUID = 1L; + private final EncodingError error; public EncodingException(EncodingError error) { diff --git a/src/org/jcodings/exception/JCodingsException.java b/src/org/jcodings/exception/JCodingsException.java index bd42cc4..a8d77a9 100644 --- a/src/org/jcodings/exception/JCodingsException.java +++ b/src/org/jcodings/exception/JCodingsException.java @@ -20,6 +20,9 @@ package org.jcodings.exception; public class JCodingsException extends RuntimeException { + + private static final long serialVersionUID = 1L; + public JCodingsException(String message) { super(message); } diff --git a/src/org/jcodings/exception/TranscoderException.java b/src/org/jcodings/exception/TranscoderException.java index a4beea8..dda56cd 100644 --- a/src/org/jcodings/exception/TranscoderException.java +++ b/src/org/jcodings/exception/TranscoderException.java @@ -20,6 +20,9 @@ package org.jcodings.exception; public class TranscoderException extends JCodingsException { + + private static final long serialVersionUID = 1L; + public TranscoderException(String message) { super(message); } diff --git a/src/org/jcodings/specific/BaseEUCJPEncoding.java b/src/org/jcodings/specific/BaseEUCJPEncoding.java index 2b007b3..f5390ce 100644 --- a/src/org/jcodings/specific/BaseEUCJPEncoding.java +++ b/src/org/jcodings/specific/BaseEUCJPEncoding.java @@ -92,6 +92,7 @@ public int mbcCaseFold(int flag, byte[]bytes, IntHolder pp, int end, byte[]lower } } + @Override protected boolean isLead(int c) { return ((c - 0xa1) & 0xff) > 0xfe - 0xa1; } diff --git a/src/org/jcodings/specific/EUCKREncoding.java b/src/org/jcodings/specific/EUCKREncoding.java index 924fbe4..8247ae5 100644 --- a/src/org/jcodings/specific/EUCKREncoding.java +++ b/src/org/jcodings/specific/EUCKREncoding.java @@ -69,6 +69,7 @@ public boolean isCodeCType(int code, int ctype) { } // euckr_islead + @Override protected boolean isLead(int c) { return ((c) < 0xa1 || (c) == 0xff); } diff --git a/src/org/jcodings/specific/EmacsMuleEncoding.java b/src/org/jcodings/specific/EmacsMuleEncoding.java index a3198db..165ccac 100644 --- a/src/org/jcodings/specific/EmacsMuleEncoding.java +++ b/src/org/jcodings/specific/EmacsMuleEncoding.java @@ -99,7 +99,7 @@ public int leftAdjustCharHead(byte[] bytes, int p, int s, int end) { int p_ = s; while (!islead(bytes[p_] & 0xff) && p_ > p) p_--; return p_; - }; + } @Override public boolean isReverseMatchAllowed(byte[]bytes, int p, int end) { diff --git a/src/org/jcodings/specific/GB18030Encoding.java b/src/org/jcodings/specific/GB18030Encoding.java index e2f9cc1..e68ed67 100644 --- a/src/org/jcodings/specific/GB18030Encoding.java +++ b/src/org/jcodings/specific/GB18030Encoding.java @@ -120,7 +120,7 @@ private enum State { Odd_CM_Odd_C4CM, Even_CM_Even_C4CM, Odd_CM_Even_C4CM - }; + } @Override public int leftAdjustCharHead(byte[]bytes, int start, int s, int end) { diff --git a/src/org/jcodings/specific/Windows_1251Encoding.java b/src/org/jcodings/specific/Windows_1251Encoding.java index 4f4f0e2..007ec1d 100644 --- a/src/org/jcodings/specific/Windows_1251Encoding.java +++ b/src/org/jcodings/specific/Windows_1251Encoding.java @@ -21,7 +21,6 @@ import org.jcodings.CaseFoldMapEncoding; import org.jcodings.Config; -import org.jcodings.ISOEncoding; import org.jcodings.IntHolder; import org.jcodings.constants.CharacterType; diff --git a/src/org/jcodings/spi/Charsets.java b/src/org/jcodings/spi/Charsets.java index beec046..7e73931 100644 --- a/src/org/jcodings/spi/Charsets.java +++ b/src/org/jcodings/spi/Charsets.java @@ -10,10 +10,13 @@ */ public class Charsets extends java.nio.charset.spi.CharsetProvider { private static final List charsets = Collections.singletonList((Charset) ISO_8859_16.INSTANCE); + + @Override public Iterator charsets() { return charsets.iterator(); } + @Override public Charset charsetForName(String charsetName) { if ("ISO-8859-16".equals(charsetName) || ISO_8859_16.INSTANCE.aliases().contains(charsetName)) { return ISO_8859_16.INSTANCE; diff --git a/src/org/jcodings/transcode/EConv.java b/src/org/jcodings/transcode/EConv.java index 5ca95b5..1197127 100644 --- a/src/org/jcodings/transcode/EConv.java +++ b/src/org/jcodings/transcode/EConv.java @@ -851,7 +851,6 @@ public boolean equals(Object other) { EConv ec2 = (EConv)other; int i; - if (ec2 == null) return false; if (ec1.source != ec2.source && !Arrays.equals(ec1.source, ec2.source)) return false; diff --git a/src/org/jcodings/transcode/TranscoderDB.java b/src/org/jcodings/transcode/TranscoderDB.java index 1d6b38a..e944b69 100644 --- a/src/org/jcodings/transcode/TranscoderDB.java +++ b/src/org/jcodings/transcode/TranscoderDB.java @@ -219,6 +219,7 @@ private static EConv open0(byte[] source, byte[] destination, int ecflags) { numTrans = searchPath(source, destination, new SearchPathCallback() { int additional = 0; + @Override public void call(byte[] source, byte[] destination, int depth) { if (lentries.p == null) lentries.p = new Entry[depth + 1 + additional]; lentries.p[depth] = getEntry(source, destination); diff --git a/src/org/jcodings/transcode/TranscoderList.java b/src/org/jcodings/transcode/TranscoderList.java index a3e6498..9b6f2f7 100644 --- a/src/org/jcodings/transcode/TranscoderList.java +++ b/src/org/jcodings/transcode/TranscoderList.java @@ -223,7 +223,7 @@ static void load() { TranscoderDB.declare("UTF-32", "UTF-8", "From_UTF_32"); TranscoderDB.declare("UTF-8", "UTF-16", "To_UTF_16"); TranscoderDB.declare("UTF-8", "UTF-32", "To_UTF_32"); - }; + } static final GenericTranscoderEntry[] GENERIC_LIST = new GenericTranscoderEntry[] { new GenericTranscoderEntry("Big5", "UTF-8", 57100, "Big5", 1, 2, 1, AsciiCompatibility.CONVERTER, 0), diff --git a/src/org/jcodings/transcode/specific/Cp50220_decoder_Transcoder.java b/src/org/jcodings/transcode/specific/Cp50220_decoder_Transcoder.java index 52060d6..6d0a812 100644 --- a/src/org/jcodings/transcode/specific/Cp50220_decoder_Transcoder.java +++ b/src/org/jcodings/transcode/specific/Cp50220_decoder_Transcoder.java @@ -40,6 +40,7 @@ public int stateFinish(byte[] state) { return TranscodeFunctions.iso2022jpInit(state); } + @Override public int startToInfo(byte[] statep, byte[] s, int sStart, int l) { return TranscodeFunctions.funSiCp50221Decoder(statep, s, sStart, l); } diff --git a/src/org/jcodings/transcode/specific/Cp50221_decoder_Transcoder.java b/src/org/jcodings/transcode/specific/Cp50221_decoder_Transcoder.java index 78fb56b..b279a24 100644 --- a/src/org/jcodings/transcode/specific/Cp50221_decoder_Transcoder.java +++ b/src/org/jcodings/transcode/specific/Cp50221_decoder_Transcoder.java @@ -40,6 +40,7 @@ public int stateFinish(byte[] state) { return TranscodeFunctions.iso2022jpInit(state); } + @Override public int startToInfo(byte[] statep, byte[] s, int sStart, int l) { return TranscodeFunctions.funSiCp50221Decoder(statep, s, sStart, l); } diff --git a/src/org/jcodings/transcode/specific/Iso2022jp_decoder_Transcoder.java b/src/org/jcodings/transcode/specific/Iso2022jp_decoder_Transcoder.java index a5fedba..41a562e 100644 --- a/src/org/jcodings/transcode/specific/Iso2022jp_decoder_Transcoder.java +++ b/src/org/jcodings/transcode/specific/Iso2022jp_decoder_Transcoder.java @@ -40,6 +40,7 @@ public int stateFinish(byte[] state) { return TranscodeFunctions.iso2022jpInit(state); } + @Override public int startToInfo(byte[] statep, byte[] s, int sStart, int l) { return TranscodeFunctions.funSiIso50220jpDecoder(statep, s, sStart, l); } diff --git a/src/org/jcodings/transcode/specific/Iso2022jp_kddi_decoder_Transcoder.java b/src/org/jcodings/transcode/specific/Iso2022jp_kddi_decoder_Transcoder.java index 57c7eda..001feb3 100644 --- a/src/org/jcodings/transcode/specific/Iso2022jp_kddi_decoder_Transcoder.java +++ b/src/org/jcodings/transcode/specific/Iso2022jp_kddi_decoder_Transcoder.java @@ -40,6 +40,7 @@ public int stateFinish(byte[] state) { return TranscodeFunctions.iso2022jpKddiInit(state); } + @Override public int startToInfo(byte[] statep, byte[] s, int sStart, int l) { return TranscodeFunctions.funSiIso2022jpKddiDecoder(statep, s, sStart, l); } diff --git a/src/org/jcodings/util/ArrayReader.java b/src/org/jcodings/util/ArrayReader.java index 5050c25..e07822e 100644 --- a/src/org/jcodings/util/ArrayReader.java +++ b/src/org/jcodings/util/ArrayReader.java @@ -44,12 +44,17 @@ public static byte[] readByteArray(String name) { bytes[i] = dis.readByte(); } checkAvailable(dis, name); - dis.close(); return bytes; } catch (IOException ioe) { decorate(ioe, name); - return null; + } finally { + try { + dis.close(); + } catch (IOException ex) { + // ignore + } } + return null; } public static int[] readIntArray(String name) { @@ -61,12 +66,17 @@ public static int[] readIntArray(String name) { ints[i] = dis.readInt(); } checkAvailable(dis, name); - dis.close(); return ints; } catch (IOException ioe) { decorate(ioe, name); - return null; - } + } finally { + try { + dis.close(); + } catch (IOException ex) { + // ignore + } + } + return null; } public static int[][] readNestedIntArray(String name) { @@ -82,14 +92,18 @@ public static int[][] readNestedIntArray(String name) { iints[k] = dis.readInt(); } } - checkAvailable(dis, name); - dis.close(); return ints; } catch (IOException ioe) { decorate(ioe, name); - return null; + } finally { + try { + dis.close(); + } catch (IOException ex) { + // ignore + } } + return null; } static void checkAvailable(DataInputStream dis, String name) throws IOException { diff --git a/src/org/jcodings/util/BytesHash.java b/src/org/jcodings/util/BytesHash.java index 3aeb11c..7237735 100644 --- a/src/org/jcodings/util/BytesHash.java +++ b/src/org/jcodings/util/BytesHash.java @@ -29,6 +29,7 @@ public BytesHash(int size) { super(size); } + @Override protected void init() { head = new BytesHashEntry(); } @@ -62,7 +63,7 @@ public boolean equals(byte[]bytes, int p, int end) { public static int hashCode(byte[]bytes, int p, int end) { int key = 0; - while (p < end) key = ((key << 16) + (key << 6) - key) + (int)(bytes[p++]); // & 0xff ? we have to match jruby string hash + while (p < end) key = ((key << 16) + (key << 6) - key) + bytes[p++]; // & 0xff ? we have to match jruby string hash key = key + (key >> 5); return key; } diff --git a/src/org/jcodings/util/CaseInsensitiveBytesHash.java b/src/org/jcodings/util/CaseInsensitiveBytesHash.java index 6f30eb8..248ef39 100644 --- a/src/org/jcodings/util/CaseInsensitiveBytesHash.java +++ b/src/org/jcodings/util/CaseInsensitiveBytesHash.java @@ -31,6 +31,7 @@ public CaseInsensitiveBytesHash(int size) { super(size); } + @Override protected void init() { head = new CaseInsensitiveBytesHashEntry(); } @@ -60,7 +61,7 @@ public boolean equals(byte[]bytes, int p, int end) { public static int hashCode(byte[]bytes, int p, int end) { int key = 0; - while (p < end) key = ((key << 16) + (key << 6) - key) + (int)(ToLowerCaseTable[bytes[p++] & 0xff]); // & 0xff ? we have to match jruby string hash + while (p < end) key = ((key << 16) + (key << 6) - key) + ToLowerCaseTable[bytes[p++] & 0xff]; // & 0xff ? we have to match jruby string hash key = key + (key >> 5); return key; } diff --git a/src/org/jcodings/util/Hash.java b/src/org/jcodings/util/Hash.java index 227aa0e..e973018 100644 --- a/src/org/jcodings/util/Hash.java +++ b/src/org/jcodings/util/Hash.java @@ -133,6 +133,7 @@ protected static int hashValue(int h) { return h & HASH_SIGN_BIT_MASK; } + @Override public Iterator iterator() { return new HashIterator(); } @@ -144,16 +145,19 @@ public HashIterator() { next = head.after; } + @Override public boolean hasNext() { return next != head; } + @Override public V next() { HashEntry e = next; next = e.after; return e.value; } + @Override public void remove() { throw new InternalException("not supported operation exception"); } @@ -170,20 +174,24 @@ public HashEntryIterator() { next = head.after; } + @Override public Iterator> iterator() { return this; } + @Override public boolean hasNext() { return next != head; } + @Override public HashEntry next() { HashEntry e = next; next = e.after; return e; } + @Override public void remove() { throw new InternalException("not supported operation exception"); } diff --git a/src/org/jcodings/util/IntArrayHash.java b/src/org/jcodings/util/IntArrayHash.java index 22e1f5f..e9b588b 100644 --- a/src/org/jcodings/util/IntArrayHash.java +++ b/src/org/jcodings/util/IntArrayHash.java @@ -29,6 +29,7 @@ public IntArrayHash(int size) { super(size); } + @Override protected void init() { head = new IntArrayHashEntry(); } diff --git a/src/org/jcodings/util/IntHash.java b/src/org/jcodings/util/IntHash.java index 9b0c1eb..20d6da7 100644 --- a/src/org/jcodings/util/IntHash.java +++ b/src/org/jcodings/util/IntHash.java @@ -29,6 +29,7 @@ public IntHash(int size) { super(size); } + @Override protected void init() { head = new IntHashEntry(); } diff --git a/src/org/jcodings/util/ObjHash.java b/src/org/jcodings/util/ObjHash.java index 0403d0a..8b96020 100644 --- a/src/org/jcodings/util/ObjHash.java +++ b/src/org/jcodings/util/ObjHash.java @@ -21,6 +21,7 @@ public final class ObjHash extends Hash { + @Override protected void init() { head = new ObjHashEntry(); } @@ -38,6 +39,7 @@ public ObjHashEntry() { key = null; } + @Override public boolean equals(Object key) { if (this.key == key) return true; return this.key.equals(key); diff --git a/test/org/jcodings/specific/TestBig5.java b/test/org/jcodings/specific/TestBig5.java index fdba5f1..7d5a10b 100755 --- a/test/org/jcodings/specific/TestBig5.java +++ b/test/org/jcodings/specific/TestBig5.java @@ -5,7 +5,6 @@ import java.nio.charset.Charset; -import org.jcodings.specific.BIG5Encoding; import org.junit.Test; public class TestBig5 { diff --git a/test/org/jcodings/specific/TestCESU8.java b/test/org/jcodings/specific/TestCESU8.java index ae8fe99..62e7fe8 100644 --- a/test/org/jcodings/specific/TestCESU8.java +++ b/test/org/jcodings/specific/TestCESU8.java @@ -1,11 +1,8 @@ package org.jcodings.specific; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertEquals; import org.jcodings.Encoding; -import org.jcodings.constants.CharacterType; -import java.nio.charset.StandardCharsets; import org.junit.Test; public class TestCESU8 { diff --git a/test/org/jcodings/specific/TestCaseMap.java b/test/org/jcodings/specific/TestCaseMap.java index 5c4c586..9ad7e5d 100644 --- a/test/org/jcodings/specific/TestCaseMap.java +++ b/test/org/jcodings/specific/TestCaseMap.java @@ -1,6 +1,6 @@ package org.jcodings.specific; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.List; diff --git a/test/org/jcodings/specific/TestEConvResult.java b/test/org/jcodings/specific/TestEConvResult.java index dc02fdb..5676749 100644 --- a/test/org/jcodings/specific/TestEConvResult.java +++ b/test/org/jcodings/specific/TestEConvResult.java @@ -1,14 +1,15 @@ package org.jcodings.specific; -import junit.framework.Assert; +import static org.junit.Assert.assertEquals; + import org.jcodings.transcode.EConvResult; import org.junit.Test; public class TestEConvResult { @Test public void testSymbolicName() { - Assert.assertEquals("finished", EConvResult.Finished.symbolicName()); - Assert.assertEquals("after_output", EConvResult.AfterOutput.symbolicName()); - Assert.assertEquals("destination_buffer_full", EConvResult.DestinationBufferFull.symbolicName()); + assertEquals("finished", EConvResult.Finished.symbolicName()); + assertEquals("after_output", EConvResult.AfterOutput.symbolicName()); + assertEquals("destination_buffer_full", EConvResult.DestinationBufferFull.symbolicName()); } } diff --git a/test/org/jcodings/specific/TestEmacsMule.java b/test/org/jcodings/specific/TestEmacsMule.java index 9bd983d..68253ab 100644 --- a/test/org/jcodings/specific/TestEmacsMule.java +++ b/test/org/jcodings/specific/TestEmacsMule.java @@ -1,14 +1,13 @@ package org.jcodings.specific; import static org.junit.Assert.assertEquals; -import org.jcodings.specific.EmacsMuleEncoding; import org.junit.Test; public class TestEmacsMule { @Test public void testRightAdjustCharHeadAscii() { byte[] str = new byte[]{(byte)'a', (byte)'b', (byte)'c', (byte)',', (byte)'d', (byte)'e', (byte)'f'}; - + int t = EmacsMuleEncoding.INSTANCE.rightAdjustCharHead(str, 0, 3, 7); assertEquals("rightAdjustCharHead did not adjust properly", 3, t); } diff --git a/test/org/jcodings/specific/TestGBK.java b/test/org/jcodings/specific/TestGBK.java index 03a6f33..fa541df 100755 --- a/test/org/jcodings/specific/TestGBK.java +++ b/test/org/jcodings/specific/TestGBK.java @@ -8,7 +8,6 @@ import org.jcodings.Encoding; import org.jcodings.EncodingDB; import org.jcodings.EncodingDB.Entry; -import org.jcodings.specific.GBKEncoding; import org.jcodings.util.CaseInsensitiveBytesHash; import org.junit.Before; import org.junit.Test; diff --git a/test/org/jcodings/specific/TestUnicode.java b/test/org/jcodings/specific/TestUnicode.java index 34c2ea7..08a8784 100644 --- a/test/org/jcodings/specific/TestUnicode.java +++ b/test/org/jcodings/specific/TestUnicode.java @@ -1,7 +1,7 @@ package org.jcodings.specific; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import org.jcodings.Encoding; import org.jcodings.constants.CharacterType;