An exception during schema loading in the JSON schema compatibility layer is resulting in an exception logged in Sentry. We should be catching it and reporting it more appropriately. Probably as some sort of 4xx http response.
Endpoint: http://bu98.serviceregistry.rhcloud.com/apis/registry/v2/groups/default/artifacts/person-schema/versions
Error message: #: could not determine version
Stack trace:
org.everit.json.schema.loader.SchemaLoader in <init> at line 338
org.everit.json.schema.loader.SchemaLoader$SchemaLoaderBuilder in build at line 149
io.apicurio.registry.rules.compatibility.jsonschema.JsonSchemaDiffLibrary in findDifferences at line 54
io.apicurio.registry.rules.compatibility.jsonschema.JsonSchemaDiffLibrary in getIncompatibleDifferences at line 76
io.apicurio.registry.rules.compatibility.JsonSchemaCompatibilityChecker in testCompatibility at line 57
io.apicurio.registry.rules.compatibility.CompatibilityRuleExecutor in execute at line 63
io.apicurio.registry.rules.compatibility.CompatibilityRuleExecutor_Subclass in execute$$superforward1
io.apicurio.registry.rules.compatibility.CompatibilityRuleExecutor_Subclass$$function$$3 in apply
io.quarkus.arc.impl.AroundInvokeInvocationContext in proceed at line 54
io.apicurio.common.apps.logging.LoggingInterceptor in logMethodEntry at line 53
io.apicurio.common.apps.logging.LoggingInterceptor_Bean in intercept
io.quarkus.arc.impl.InterceptorInvocation in invoke at line 41
io.quarkus.arc.impl.AroundInvokeInvocationContext in perform at line 41
io.quarkus.arc.impl.InvocationContexts in performAroundInvoke at line 32
io.apicurio.registry.rules.compatibility.CompatibilityRuleExecutor_Subclass in execute
io.apicurio.registry.rules.compatibility.CompatibilityRuleExecutor_ClientProxy in execute
io.apicurio.registry.rules.RulesServiceImpl in applyRule at line 131
io.apicurio.registry.rules.RulesServiceImpl in applyGlobalAndArtifactRules at line 99
io.apicurio.registry.rules.RulesServiceImpl in applyRules at line 73
io.apicurio.registry.rules.RulesServiceImpl_ClientProxy in applyRules
io.apicurio.registry.rest.v2.GroupsResourceImpl in createArtifactVersionWithRefs at line 773
io.apicurio.registry.rest.v2.GroupsResourceImpl in createArtifactVersion at line 717
io.apicurio.registry.rest.v2.GroupsResourceImpl_Subclass in createArtifactVersion$$superforward1
io.apicurio.registry.rest.v2.GroupsResourceImpl_Subclass$$function$$16 in apply
io.quarkus.arc.impl.AroundInvokeInvocationContext in proceed at line 54
io.apicurio.common.apps.logging.LoggingInterceptor in logMethodEntry at line 53
io.apicurio.common.apps.logging.LoggingInterceptor_Bean in intercept
io.quarkus.arc.impl.InterceptorInvocation in invoke at line 41
io.quarkus.arc.impl.AroundInvokeInvocationContext in proceed at line 50
io.apicurio.registry.auth.AuthorizedInterceptor in authorizeMethod at line 129
io.apicurio.registry.auth.AuthorizedInterceptor_Bean in intercept
io.quarkus.arc.impl.InterceptorInvocation in invoke at line 41
io.quarkus.arc.impl.AroundInvokeInvocationContext in proceed at line 50
io.apicurio.common.apps.logging.audit.AuditedInterceptor in auditMethod at line 76
io.apicurio.common.apps.logging.audit.AuditedInterceptor_Bean in intercept
io.quarkus.arc.impl.InterceptorInvocation in invoke at line 41
io.quarkus.arc.impl.AroundInvokeInvocationContext in perform at line 41
io.quarkus.arc.impl.InvocationContexts in performAroundInvoke at line 32
io.apicurio.registry.rest.v2.GroupsResourceImpl_Subclass in createArtifactVersion
io.apicurio.registry.rest.v2.GroupsResourceImpl_ClientProxy in createArtifactVersion
jdk.internal.reflect.GeneratedMethodAccessor140 in invoke
jdk.internal.reflect.DelegatingMethodAccessorImpl in invoke at line 43
java.lang.reflect.Method in invoke at line 566
org.jboss.resteasy.core.MethodInjectorImpl in invoke at line 170
org.jboss.resteasy.core.MethodInjectorImpl in invoke at line 130
org.jboss.resteasy.core.ResourceMethodInvoker in internalInvokeOnTarget at line 660
org.jboss.resteasy.core.ResourceMethodInvoker in invokeOnTargetAfterFilter at line 524
org.jboss.resteasy.core.ResourceMethodInvoker in lambda$invokeOnTarget$2 at line 474
org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext in filter at line 364
org.jboss.resteasy.core.ResourceMethodInvoker in invokeOnTarget at line 476
org.jboss.resteasy.core.ResourceMethodInvoker in invoke at line 434
org.jboss.resteasy.core.ResourceMethodInvoker in invoke at line 408
org.jboss.resteasy.core.ResourceMethodInvoker in invoke at line 69
org.jboss.resteasy.core.SynchronousDispatcher in invoke at line 492
org.jboss.resteasy.core.SynchronousDispatcher in lambda$invoke$4 at line 261
org.jboss.resteasy.core.SynchronousDispatcher in lambda$preprocess$0 at line 161
org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext in filter at line 364
org.jboss.resteasy.core.SynchronousDispatcher in preprocess at line 164
org.jboss.resteasy.core.SynchronousDispatcher in invoke at line 247
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher in service at line 249
io.quarkus.resteasy.runtime.ResteasyFilter in doFilter at line 35
io.undertow.servlet.core.ManagedFilter in doFilter at line 61
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl in doFilter at line 131
io.undertow.servlet.handlers.FilterHandler in handleRequest at line 84
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler in handleRequest at line 63
io.undertow.servlet.handlers.ServletChain$1 in handleRequest at line 68
io.undertow.servlet.handlers.ServletDispatchingHandler in handleRequest at line 36
io.undertow.servlet.handlers.RedirectDirHandler in handleRequest at line 67
io.undertow.server.handlers.PredicateHandler in handleRequest at line 43
1
io.undertow.servlet.handlers.ServletInitialHandler in dispatchRequest at line 229
io.undertow.servlet.handlers.ServletInitialHandler in dispatchToPath at line 164
io.undertow.servlet.spec.RequestDispatcherImpl in forwardImpl at line 227
io.undertow.servlet.spec.RequestDispatcherImpl in forwardImplSetup at line 149
io.undertow.servlet.spec.RequestDispatcherImpl in forward at line 111
io.apicurio.registry.rest.RegistryApplicationServletFilter in doFilter at line 154
io.apicurio.registry.rest.RegistryApplicationServletFilter_ClientProxy in doFilter
io.undertow.servlet.core.ManagedFilter in doFilter at line 61
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl in doFilter at line 131
io.undertow.servlet.handlers.FilterHandler in handleRequest at line 84
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler in handleRequest at line 63
io.undertow.servlet.handlers.ServletChain$1 in handleRequest at line 68
io.undertow.servlet.handlers.ServletDispatchingHandler in handleRequest at line 36
io.undertow.servlet.handlers.RedirectDirHandler in handleRequest at line 67
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler in handleRequest at line 133
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler in handleRequest at line 57
io.undertow.server.handlers.PredicateHandler in handleRequest at line 43
io.undertow.security.handlers.AbstractConfidentialityHandler in handleRequest at line 46
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler in handleRequest at line 65
io.undertow.security.handlers.AuthenticationMechanismsHandler in handleRequest at line 60
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler in handleRequest at line 77
io.undertow.security.handlers.NotificationReceiverHandler in handleRequest at line 50
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler in handleRequest at line 43
io.undertow.server.handlers.PredicateHandler in handleRequest at line 43
1
io.undertow.servlet.handlers.ServletInitialHandler in handleFirstRequest at line 247
io.undertow.servlet.handlers.ServletInitialHandler in access$100 at line 56
io.undertow.servlet.handlers.ServletInitialHandler$2 in call at line 111
io.undertow.servlet.handlers.ServletInitialHandler$2 in call at line 108
io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1 in call at line 48
io.undertow.servlet.core.ContextClassLoaderSetupAction$1 in call at line 43
io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1 in call at line 590
io.undertow.servlet.handlers.ServletInitialHandler in dispatchRequest at line 227
io.undertow.servlet.handlers.ServletInitialHandler in handleRequest at line 152
io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1 in handleRequest at line 119
io.undertow.server.Connectors in executeRootHandler at line 284
io.undertow.server.DefaultExchangeHandler in handle at line 18
io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$1 in run at line 412
java.util.concurrent.Executors$RunnableAdapter in call at line 515
java.util.concurrent.FutureTask in run at line 264
io.quarkus.vertx.core.runtime.VertxCoreRecorder$13 in runWith at line 543
org.jboss.threads.EnhancedQueueExecutor$Task in run at line 2449
org.jboss.threads.EnhancedQueueExecutor$ThreadBody in run at line 1478
org.jboss.threads.DelegatingRunnable in run at line 29
org.jboss.threads.ThreadLocalResettingRunnable in run at line 29
io.netty.util.concurrent.FastThreadLocalRunnable in run at line 30
java.lang.Thread in run at line 829
An exception during schema loading in the JSON schema compatibility layer is resulting in an exception logged in Sentry. We should be catching it and reporting it more appropriately. Probably as some sort of 4xx http response.
Endpoint:
http://bu98.serviceregistry.rhcloud.com/apis/registry/v2/groups/default/artifacts/person-schema/versions
Error message:#: could not determine version
Stack trace: