You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
% head sandbox/mega-trait.scala # attached
trait MegaTrait {
def method0: Int = 0
def method1: Int = 0
def method2: Int = 0
def method3: Int = 0
def method4: Int = 0
def method5: Int = 0
def method6: Int = 0
def method7: Int = 0
def method8: Int = 0
~/code/scala tail sandbox/mega-trait.scala
def method2991: Int = 0
def method2992: Int = 0
def method2993: Int = 0
def method2994: Int = 0
def method2995: Int = 0
def method2996: Int = 0
def method2997: Int = 0
def method2998: Int = 0
def method2999: Int = 0
}
% qbin/scalac -d sandbox/ sandbox/mega-trait.scala && qbin/scala -nc -classpath sandbox/ -e 'scala.reflect.runtime.universe.typeTag[MegaTrait].tpe.members'java.lang.ArrayIndexOutOfBoundsException: 958737694
at scala.reflect.internal.pickling.PickleBuffer.readByte(PickleBuffer.scala:104)
at scala.reflect.internal.pickling.PickleBuffer$$anonfun$createIndex$1.apply$mcVI$sp(PickleBuffer.scala:181)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:149)
at scala.reflect.internal.pickling.PickleBuffer.createIndex(PickleBuffer.scala:179)
at scala.reflect.internal.pickling.UnPickler$Scan.<init>(UnPickler.scala:60)
at scala.reflect.internal.pickling.UnPickler.unpickle(UnPickler.scala:38)
at scala.reflect.runtime.JavaMirrors$JavaMirror.unpickleClass(JavaMirrors.scala:592)
at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply$mcV$sp(SymbolLoaders.scala:35)
at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:32)
at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:32)
at scala.reflect.internal.SymbolTable.enteringPhaseNotLaterThan(SymbolTable.scala:226)
at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.complete(SymbolLoaders.scala:32)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1319)
at scala.reflect.internal.Types$TypeRef.thisInfo(Types.scala:2321)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2326)
at scala.reflect.internal.Types$Type.scala$reflect$internal$Types$Type$$findMembersInternal$1(Types.scala:990)
at scala.reflect.internal.Types$Type.findMembers(Types.scala:1036)
at scala.reflect.internal.Types$Type.membersBasedOnFlags(Types.scala:624)
at scala.reflect.internal.Types$Type.members(Types.scala:577)
at scala.reflect.internal.Types$Type.members(Types.scala:256)
at Main$$anon$1.<init>(scalacmd6150594393612715057.scala:1)
at Main$.main(scalacmd6150594393612715057.scala:1)
at Main.main(scalacmd6150594393612715057.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.reflect.internal.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:68)
at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31)
at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:99)
at scala.reflect.internal.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:68)
at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:99)
at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:22)
at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:39)
at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:29)
at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:39)
at scala.tools.nsc.ScriptRunner.scala$tools$nsc$ScriptRunner$$runCompiled(ScriptRunner.scala:158)
at scala.tools.nsc.ScriptRunner$$anonfun$runCommand$1.apply(ScriptRunner.scala:205)
at scala.tools.nsc.ScriptRunner$$anonfun$runCommand$1.apply(ScriptRunner.scala:205)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1$$anonfun$apply$mcZ$sp$1.apply(ScriptRunner.scala:144)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1$$anonfun$apply$mcZ$sp$1.apply(ScriptRunner.scala:144)
at scala.Option.exists(Option.scala:228)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply$mcZ$sp(ScriptRunner.scala:144)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:118)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:118)
at scala.tools.nsc.util.package$.trackingThreads(package.scala:46)
at scala.tools.nsc.util.package$.waitingForThreads(package.scala:30)
at scala.tools.nsc.ScriptRunner.withCompiledScript(ScriptRunner.scala:117)
at scala.tools.nsc.ScriptRunner.runCommand(ScriptRunner.scala:205)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
java.lang.RuntimeException: error reading Scala signature of MegaTrait: 958737694
at scala.reflect.internal.pickling.UnPickler.unpickle(UnPickler.scala:46)
at scala.reflect.runtime.JavaMirrors$JavaMirror.unpickleClass(JavaMirrors.scala:592)
During unpickling, the var readIndex is mutated thusly:
loadBytes[Array[String]]("scala.reflect.ScalaLongSignature") match {
caseSome(slsig) =>
info(s"unpickling Scala $clazz and $module with long Scala signature")
valbyteSegments= slsig map (_.getBytes)
vallens= byteSegments map ByteCodecs.decode
valbytes=Array.ofDim[Byte](lens.sum)
varlen=0for ((bs, l) <- byteSegments zip lens) {
bs.copyToArray(bytes, len, l)
len += l
}
unpickler.unpickle(bytes, 0, clazz, module, jclazz.getName)
caseNone=>// class does not have a Scala signature; it's a Java class
info("translating reflection info for Java "+ jclazz) //debug
initClassAndModule(clazz, module, newFromJavaClassCompleter(clazz, module, jclazz))
}
We get the corruption just over the boundary between the two byteSegments.
During unpickling, the var
readIndex
is mutated thusly:From
JavaMirrors
We get the corruption just over the boundary between the two
byteSegments
.The text was updated successfully, but these errors were encountered: