sake92 / sbt-hepek

Sbt plugin for rendering Scala objects to files. And more!
Apache License 2.0
21 stars 1 forks source link

java.io.UTFDataFormatException: malformed input around byte #2

Closed sake92 closed 7 years ago

sake92 commented 7 years ago

Getting a nasty error when using Scala 2.12:

sbt:core> hepek
[error] java.lang.RuntimeException: java.io.UTFDataFormatException: malformed input around byte 21
[error] at classycle.Analyser.getClassGraph(Analyser.java:132)
[error] at ba.sake.hepek.core.ClassycleDependencyUtils.reverseDependencies(ClassycleDependencyUtils.java:44) [error] at ba.sake.hepek.sbt.Tasks$.getClassNamesToRender(HepekPlugin.scala:84)
[error] at ba.sake.hepek.sbt.Tasks$.runHepek(HepekPlugin.scala:64)
[error] at ba.sake.hepek.sbt.HepekPlugin$.$anonfun$rawHepekSettings$1(HepekPlugin.scala:31)
[error] at ba.sake.hepek.sbt.HepekPlugin$.$anonfun$rawHepekSettings$1$adapted(HepekPlugin.scala:26)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:42)
[error] at sbt.std.Transform$$anon$4.work(System.scala:64)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:257)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:266)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:257)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:167)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:32)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (core/compile:hepek) java.io.UTFDataFormatException: malformed input around byte 21

Project: sake-ba-source Note: Not happening when using Scala 2.11... So, this could be related to classycle and Java 8 bytecode???

sake92 commented 7 years ago

Scala 2.12 probably uses invoke_dynamic stuff for lambdas etc. Classycle did not handle those constants at all!!! 😄
Of course, I made my own repo and implemented the gist of it: https://github.com/sake92/hepek-classycle Now everything works as a charm. For now, lol.