diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrStubUtils.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrStubUtils.java index c635b6c699af..716ebb1ca6f0 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrStubUtils.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrStubUtils.java @@ -44,9 +44,16 @@ import java.util.List; */ public class GrStubUtils { private static final Logger LOG = Logger.getInstance(GrStubUtils.class); + public static final int TOO_LONG = -1; public static void writeStringArray(StubOutputStream dataStream, String[] array) throws IOException { - dataStream.writeByte(array.length); + if (array.length >= Byte.MAX_VALUE) { + dataStream.writeByte(TOO_LONG); + dataStream.writeInt(array.length); + } + else { + dataStream.writeByte(array.length); + } for (String s : array) { LOG.assertTrue(s != null); dataStream.writeName(s); @@ -54,9 +61,12 @@ public class GrStubUtils { } public static String[] readStringArray(StubInputStream dataStream) throws IOException { - final byte b = dataStream.readByte(); - final String[] annNames = new String[b]; - for (int i = 0; i < b; i++) { + int length = dataStream.readByte(); + if (length == TOO_LONG) { + length = dataStream.readInt(); + } + final String[] annNames = new String[length]; + for (int i = 0; i < length; i++) { annNames[i] = dataStream.readName().toString(); } return annNames; diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrMethodElementType.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrMethodElementType.java index 620b4a502edd..e4dbbc91789c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrMethodElementType.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrMethodElementType.java @@ -53,8 +53,7 @@ public abstract class GrMethodElementType extends GrStubElementType { @Override public int getStubVersion() { - return super.getStubVersion() + 16; + return super.getStubVersion() + 17; } @NotNull