From b02429a8a4428700ab1503eb29242c0f22237421 Mon Sep 17 00:00:00 2001 From: Oryan Date: Fri, 23 Oct 2026 21:45:33 -0400 Subject: [PATCH] Remove InvalidSchemaError and the antlr4-runtime dependency graphql-java shades antlr, so its parser never throws the unshaded ParseCancellationException that parseDocuments caught. The catch, and the InvalidSchemaError it would have thrown, were dead code, and they were the only reason tools depended on antlr4-runtime. --- pom.xml | 10 ------ .../kickstart/tools/SchemaParserBuilder.kt | 31 ++++--------------- src/main/kotlin/module-info.java | 1 - 3 files changed, 6 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 7ce6ae4e..81bd9904 100644 --- a/pom.xml +++ b/pom.xml @@ -47,12 +47,6 @@ graphql-java ${graphql-java.version} - - org.antlr - antlr4-runtime - 4.11.1 - compile - com.fasterxml.jackson jackson-bom @@ -162,10 +156,6 @@ com.graphql-java graphql-java - - org.antlr - antlr4-runtime - com.fasterxml classmate diff --git a/src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt b/src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt index df8f7c4a..448228c2 100644 --- a/src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt +++ b/src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt @@ -11,8 +11,6 @@ import graphql.parser.ParserOptions import graphql.schema.GraphQLScalarType import graphql.schema.idl.RuntimeWiring import graphql.schema.idl.SchemaDirectiveWiring -import org.antlr.v4.runtime.RecognitionException -import org.antlr.v4.runtime.misc.ParseCancellationException import java.text.NumberFormat import kotlin.Int.Companion.MAX_VALUE import kotlin.reflect.KClass @@ -178,22 +176,13 @@ class SchemaParserBuilder { } private fun parseDocuments(): List { - try { - val documents = files.map { parseDocument(listOf(Source(readFile(it), it))) }.toMutableList() - - if (schemaStrings.any { it.text.isNotBlank() }) { - documents.add(parseDocument(schemaStrings)) - } - - return documents - } catch (pce: ParseCancellationException) { - val cause = pce.cause - if (cause != null && cause is RecognitionException) { - throw InvalidSchemaError(pce, cause) - } else { - throw pce - } + val documents = files.map { parseDocument(listOf(Source(readFile(it), it))) }.toMutableList() + + if (schemaStrings.any { it.text.isNotBlank() }) { + documents.add(parseDocument(schemaStrings)) } + + return documents } private fun parseDocument(sources: List): Document { @@ -243,13 +232,5 @@ class SchemaParserBuilder { } } -class InvalidSchemaError( - pce: ParseCancellationException, - private val recognitionException: RecognitionException -) : RuntimeException(pce) { - override val message: String - get() = "Invalid schema provided (${recognitionException.javaClass.name}) at: ${recognitionException.offendingToken}" -} - internal class SchemaSyntaxException(message: String, location: SourceLocation, e: InvalidSyntaxException) : InvalidSyntaxException(message, location, e.offendingToken, e.sourcePreview, e) diff --git a/src/main/kotlin/module-info.java b/src/main/kotlin/module-info.java index 90ef1592..55f7ef21 100644 --- a/src/main/kotlin/module-info.java +++ b/src/main/kotlin/module-info.java @@ -14,7 +14,6 @@ requires com.fasterxml.jackson.datatype.jdk8; requires com.fasterxml.classmate; - requires org.antlr.antlr4.runtime; requires org.apache.commons.lang3; requires org.reactivestreams; requires org.slf4j;