Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1563436

Summary: Runtime Error com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO`
Product: [Community] Candlepin (Migrated to Jira) Reporter: John Sefler <jsefler>
Component: candlepinAssignee: Chris "Ceiu" Rog <crog>
Status: CLOSED CURRENTRELEASE QA Contact: Katello QA List <katello-qa-list>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 2.2CC: crog, jstavel, redakkan, skallesh
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: candlepin-2.3.5-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-06 15:08:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description John Sefler 2018-04-04 00:19:14 UTC
Description of problem:
Something nasty was merged to candlepin master today between merge commits...

57371b01b75963959fab8326597062d2e3244a42  good
dcc7929da7286f346ca38f8f262501ee7272fbc3  bad

Version-Release number of selected component (if applicable):
dcc7929da7286f346ca38f8f262501ee7272fbc3
candlepin-2.3.4-1

How reproducible:


Steps to Reproduce:

[root@jsefler-rhel6 ~]# subscription-manager register --username=testuser1 --password=password --org=admin 
Registering to: jsefler-candlepin.usersys.redhat.com:8443/candlepin
Runtime Error com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"]) at com.fasterxml.jackson.databind.exc.MismatchedInputException.from:63



[root@jsefler-rhel6 ~]# tail -f /var/log/rhsm/rhsm.log
2018-04-03 20:14:28,386 [DEBUG] subscription-manager:704:MainThread @connection.py:543 - Making request: POST /candlepin/consumers?owner=admin
2018-04-03 20:14:28,433 [INFO] subscription-manager:704:MainThread @connection.py:586 - Response: status=400, requestUuid=02154fcb-ac64-4d07-8f53-036dcdb487e4, request="POST /candlepin/consumers?owner=admin"
2018-04-03 20:14:28,434 [ERROR] subscription-manager:704:MainThread @managercli.py:1116 - Runtime Error com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"]) at com.fasterxml.jackson.databind.exc.MismatchedInputException.from:63
Traceback (most recent call last):
  File "/usr/lib64/python2.6/site-packages/subscription_manager/managercli.py", line 1113, in _do_command
    type=self.options.consumertype
  File "/usr/lib64/python2.6/site-packages/rhsmlib/services/register.py", line 80, in register
    type=type
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 966, in registerConsumer
    return self.conn.request_post(url, params)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 693, in request_post
    return self._request("POST", method, params, headers=headers)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 716, in _request
    info=info, headers=headers)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 595, in _request
    self.validateResponse(result, request_type, handler)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 654, in validateResponse
    raise RestlibException(response['status'], error_msg, response.get('headers'))
RestlibException: Runtime Error com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"]) at com.fasterxml.jackson.databind.exc.MismatchedInputException.from:63



[root@jsefler-candlepin ~]# tail -f /var/log/candlepin/candlepin.log 
2018-04-03 20:14:28,399 [thread=http-bio-8443-exec-2] [req=02154fcb-ac64-4d07-8f53-036dcdb487e4, org=, csid=f6358ce301224cc8ae5c708db03bd62e] INFO  org.candlepin.common.filter.LoggingFilter - Request: verb=POST, uri=/candlepin/consumers?owner=admin
2018-04-03 20:14:28,429 [thread=http-bio-8443-exec-2] [req=02154fcb-ac64-4d07-8f53-036dcdb487e4, org=, csid=f6358ce301224cc8ae5c708db03bd62e] ERROR org.candlepin.common.exceptions.mappers.CandlepinExceptionMapper - Runtime Error com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"]) at com.fasterxml.jackson.databind.exc.MismatchedInputException.from:63
org.jboss.resteasy.spi.ReaderException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"])
	at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:183)
	at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:89)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:112)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
	at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
	at org.candlepin.servlet.filter.EventFilter.doFilter(EventFilter.java:61)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at org.candlepin.servlet.filter.ContentTypeHackFilter.doFilter(ContentTypeHackFilter.java:58)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at org.candlepin.common.filter.LoggingFilter.doFilter(LoggingFilter.java:113)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at org.candlepin.servlet.filter.CandlepinPersistFilter.doFilter(CandlepinPersistFilter.java:48)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at org.candlepin.servlet.filter.CandlepinScopeFilter.doFilter(CandlepinScopeFilter.java:68)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `org.candlepin.dto.api.v1.ConsumerTypeDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('system')
 at [Source: (org.candlepin.common.filter.TeeHttpServletRequest$1); line: 1, column: 10743] (through reference chain: org.candlepin.dto.api.v1.ConsumerDTO["type"])
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
	at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1342)
	at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1031)
	at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:371)
	at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:323)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1366)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:171)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:161)
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
	at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1574)
	at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:965)
	at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:815)
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:59)
	at org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.readFrom(ServerReaderInterceptorContext.java:62)
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:51)
	at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59)
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
	at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:150)
	... 49 common frames omitted
2018-04-03 20:14:28,430 [thread=http-bio-8443-exec-2] [req=02154fcb-ac64-4d07-8f53-036dcdb487e4, org=, csid=f6358ce301224cc8ae5c708db03bd62e] WARN  org.candlepin.audit.EventSinkImpl - Rolling back ActiveMQ transaction.
2018-04-03 20:14:28,431 [thread=http-bio-8443-exec-2] [req=02154fcb-ac64-4d07-8f53-036dcdb487e4, org=, csid=f6358ce301224cc8ae5c708db03bd62e] INFO  org.candlepin.common.filter.LoggingFilter - Response: status=400, content-type="application/json", time=33




Actual results:


Expected results:


Additional info:

Comment 1 vritant 2018-04-04 15:00:15 UTC
*** Bug 1563670 has been marked as a duplicate of this bug. ***

Comment 2 Jan Stavel 2018-04-05 08:56:24 UTC
I have tried this PR. The error (from cockpit perspective - see https://bugzilla.redhat.com/show_bug.cgi?id=1563636) has not been already encountered.