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
{{ message }}
This repository was archived by the owner on May 14, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on May 14, 2026. It is now read-only.
If a field is named case in the protos, the generator fails with the following exception:
Exception in thread "main" com.google.api.generator.engine.ast.IdentifierNode$InvalidIdentifierException: Name case cannot be a keyword.
at com.google.api.generator.engine.ast.IdentifierNode$Builder.build(IdentifierNode.java:99)
at com.google.api.generator.engine.ast.IdentifierNode$Builder.buildVariableIdentifier(IdentifierNode.java:63)
at com.google.api.generator.engine.ast.Variable$Builder.build(Variable.java:46)
at com.google.api.generator.gapic.composer.common.AbstractServiceClientClassComposer.lambda$createMethodVariants$6(AbstractServiceClientClassComposer.java:668)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at com.google.api.generator.gapic.composer.common.AbstractServiceClientClassComposer.createMethodVariants(AbstractServiceClientClassComposer.java:671)
at com.google.api.generator.gapic.composer.common.AbstractServiceClientClassComposer.createServiceMethods(AbstractServiceClientClassComposer.java:578)
at com.google.api.generator.gapic.composer.common.AbstractServiceClientClassComposer.createClassMethods(AbstractServiceClientClassComposer.java:216)
at com.google.api.generator.gapic.composer.common.AbstractServiceClientClassComposer.generate(AbstractServiceClientClassComposer.java:150)
at com.google.api.generator.gapic.composer.Composer.lambda$generateClientSettingsClasses$3(Composer.java:134)
at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422)
at com.google.api.generator.gapic.composer.Composer.generateClientSettingsClasses(Composer.java:122)
at com.google.api.generator.gapic.composer.Composer.generateServiceClasses(Composer.java:58)
at com.google.api.generator.gapic.composer.Composer.composeServiceClasses(Composer.java:45)
at com.google.api.generator.gapic.Generator.generateGapic(Generator.java:30)
at com.google.api.generator.Main.main(Main.java:28)
--java_gapic_out: protoc-gen-java_gapic: Plugin failed with status code 1.
AIP-140 suggests that the APIs should not use possible keywords in names but does not forbid it, and this specific API won't be able to rename it because it's already public.
@alexander-fenster (Aside from deciding what to do with gapic-generator-java) Do you know who introduced the "case" field. Is it possible to provide the feedback to the person (and approvers) that you are suffering the "case" field conflicting with Java's keywords?
Do other gapic-generators work fine for the field?
I had a similar issue when I tried to generate Java libraries for artifactregistry API where a resource name has the collection name "package" in it (proto link). The resource should have be annotated with google.api.resource but doing so would cause Java generation to fail.
Let me know if you want me to create a separate issue or paste you the full stacktrace.
If a field is named
casein the protos, the generator fails with the following exception:AIP-140 suggests that the APIs should not use possible keywords in names but does not forbid it, and this specific API won't be able to rename it because it's already public.