dropwizard: Application start fails due to "java.lang.ClassCastException: io.dropwizard.util.Size cannot be cast to java.util.Optional"
Hi!
Has anyone seen this error already? I am using Dropwizard 1.1.0.
It happens while validating some fields (e.g. inputBufferSize field) in io.dropwizard.jetty.HttpConnectorFactory even if I do not specify a server block in my configuration YAML, so the default values are used.
java.lang.ClassCastException: io.dropwizard.util.Size cannot be cast to java.util.Optional
at org.hibernate.validator.internal.engine.valuehandling.OptionalValueUnwrapper.handleValidatedValue(OptionalValueUnwrapper.java:20)
at org.hibernate.validator.internal.engine.ValueContext.getCurrentValidatedValue(ValueContext.java:121)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:110)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87)
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:620)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:583)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:527)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:495)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:460)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:410)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraint(ValidatorImpl.java:761)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:684)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:419)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraint(ValidatorImpl.java:761)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:684)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:419)
at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:207)
at io.dropwizard.configuration.BaseConfigurationFactory.validate(BaseConfigurationFactory.java:237)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:129)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:92)
at io.dropwizard.cli.ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:124)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:72)
at io.dropwizard.cli.Cli.run(Cli.java:74)
at io.dropwizard.Application.run(Application.java:89)
The same also occurs sometimes for io.dropwizard.util.Duration (e.g. idleTimeout field).
Best regards Maksym
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 15 (6 by maintainers)
The only workaround that I know is setting the log4j2 log level for Hibernate validator higher than TRACE.
Reported upstream as HV-1352. Dropwizard users can use the provided workarounds until fixed upstream.
@joschi https://github.com/maksymgendin/dropwizard-error
I think I found how you can reproduce this! Enable TRACE level logging for
org.hibernate.validator, so the line 108 inorg.hibernate.validator.internal.engine.constraintvalidation.ConstraintTreegets executed and you get those ClassCastExceptions.