Fix check for primitive return types #96
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current version of Baigan assumes that the return type of any configuration key MUST NOT be a primitive type (e.g.
int
,boolean
in Java). One must use wrapper types instead (e.g.Integer
,Boolean
, etc.)The library contains a check to validate this on Spring Context initialization. However, the validation code contains a bug:
value
here is already an object of typejava.lang.Class
for majority of the cases, including for primitive types.value.getClass()
return a class forjava.lang.Class
itself, not the class forint
orboolean
for example.The fix changes the expression to:
Also the PR moves the validation check to the
ConfigurationBeanDefinitionRegistrar
class to make the error message from the thrown exception appears during Spring Context initialization. When the check is located inBaiganConfigClasses
, Spring hides the exact error message in a generic Spring Context initialization message.