>Try adding —no-build-cache to Gradle’s command line. It worked for me.

Thanks for figuring out the cause.

Just in case, the better workaround would be --rerun-tasks (it literally
reruns tasks).

I've added the full Java version to the cache key in
https://github.com/apache/calcite/commit/79006252a81353880c06f688d9d92c0cdc57026d
,
so the issue should be resolved.

On top of that, I added Java version verification to the build script, so
it fails if old Java is detected:

* What went wrong:
Apache Calcite requires Java 1.8.0u202 or later. The current Java version
is 1.8.0_152

The relevant Gradle issue is https://github.com/gradle/gradle/issues/15464
Vladimir


ср, 9 дек. 2020 г. в 09:19, Julian Hyde <[email protected]>:

> Try adding —no-build-cache to gradle’s command line. It worked for me. I
> guess a bad .class file had gotten lodged in gradle’s cache.
>
> Julian
>
> > On Dec 8, 2020, at 20:20, Chunwei Lei <[email protected]> wrote:
> >
> > I have tried jdk1.8.0_271. But I still get the error.
> >
> >> Task :plus:forbiddenApisMain FAILED
> >
> >> Task :release:distTar
> > Source distribution is created:
> >
> /Users/chunwei.lcw/Desktop/dev_src/calcite/release/build/distributions/apache-calcite-1.27.0-SNAPSHOT-src.tar.gz
> >
> > Build calcite FAILURE reason:
> >    Execution failed for task ':plus:forbiddenApisMain':
> >        Caused by: de.thetaphi.forbiddenapis.ForbiddenApiException: Failed
> > to parse class
> > 'org.apache.calcite.adapter.tpcds.TpcdsSchema$TpcdsQueryableTable$1$1'
> > (TpcdsSchema.java): java.lang.ArrayIndexOutOfBoundsException: 110
> >            at
> > de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:440)
> >            at de.thetaphi.forbiddenapis.Checker.run(Checker.java:460)
> >            at
> >
> de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis.checkForbidden(CheckForbiddenApis.java:601)
> >            at
> >
> org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
> >            at
> >
> org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
> >            at
> >
> org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
> >            at
> >
> org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
> >            at
> >
> org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
> >           ......
> >            Caused by: java.lang.ArrayIndexOutOfBoundsException: 110
> >                at
> >
> de.thetaphi.forbiddenapis.asm.ClassReader.readLabel(ClassReader.java:2643)
> >                at
> >
> de.thetaphi.forbiddenapis.asm.ClassReader.createLabel(ClassReader.java:2659)
> >                at
> >
> de.thetaphi.forbiddenapis.asm.ClassReader.readTypeAnnotations(ClassReader.java:2725)
> >                at
> > de.thetaphi.forbiddenapis.asm.ClassReader.readCode(ClassReader.java:1892)
> >                at
> >
> de.thetaphi.forbiddenapis.asm.ClassReader.readMethod(ClassReader.java:1481)
> >                at
> > de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:711)
> >                at
> > de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:394)
> >                at
> > de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:414)
> >                ... 62 more
> >
> >
> > Best,
> > Chunwei
> >
> >
> >> On Wed, Dec 9, 2020 at 7:11 AM Julian Hyde <[email protected]> wrote:
> >>
> >> I just hit the same problem. I upgraded from jdk1.8.0_152 to
> >> jdk1.8.0_271, restarted all gradle daemons, and the problem does not
> >> go away.
> >>
> >>    Execution failed for task ':plus:forbiddenApisMain':
> >>        Caused by: de.thetaphi.forbiddenapis.ForbiddenApiException:
> >> Failed to parse class
> >> 'org.apache.calcite.adapter.tpcds.TpcdsSchema$TpcdsQueryableTable$1$1'
> >> (TpcdsSchema.java): java.lang.ArrayIndexOutOfBoundsException: 110
> >>            at
> >> de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:440)
> >>            at de.thetaphi.forbiddenapis.Checker.run(Checker.java:460)
> >>            at
> >>
> de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis.checkForbidden(CheckForbiddenApis.java:601)
> >>            at
> >> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
> >>            at
> >>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
> >> ...
> >>            Caused by: java.lang.ArrayIndexOutOfBoundsException: 110
> >>                at
> >>
> de.thetaphi.forbiddenapis.asm.ClassReader.readLabel(ClassReader.java:2643)
> >>                at
> >>
> >>
> de.thetaphi.forbiddenapis.asm.ClassReader.createLabel(ClassReader.java:2659)
> >>                at
> >>
> >>
> de.thetaphi.forbiddenapis.asm.ClassReader.readTypeAnnotations(ClassReader.java:2725)
> >>                at
> >>
> de.thetaphi.forbiddenapis.asm.ClassReader.readCode(ClassReader.java:1892)
> >>                at
> >>
> de.thetaphi.forbiddenapis.asm.ClassReader.readMethod(ClassReader.java:1481)
> >>                at
> >> de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:711)
> >>                at
> >> de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:394)
> >>                at
> >> de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:414)
> >>
> >> It reproduces if you try to build
> >>
> >> Vladimir,
> >>
> >> Do you have more info about this bug? I see an ASM issue [1] that the
> >> ASM folks claim is caused by a javac issue.
> >>
> >> Julian
> >>
> >> [1]  vv https://gitlab.ow2.org/asm/asm/-/issues/317789
> >>
> >>> On Mon, Dec 7, 2020 at 4:00 AM Fan Liya <[email protected]> wrote:
> >>>
> >>> Thanks for the advice.
> >>> I have tried jdk1.8.0_271 and jdk1.9 (build 9+181), but the problem is
> >>> still there.
> >>>
> >>> Best,
> >>> Liya Fan
> >>>
> >>> On Mon, Dec 7, 2020 at 1:51 PM Vladimir Sitnikov <
> >>> [email protected]> wrote:
> >>>
> >>>> Fan Liya, please update Java. It is the solution.
> >>>>
> >>>> Vladimir
> >>>>
> >>
>

Reply via email to