Skip to content

NPE from MrBean when get() or set() is though as property #42

@TuomasKiviaho

Description

@TuomasKiviaho
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	at java.lang.String.charAt(String.java:658)
	at com.fasterxml.jackson.module.mrbean.BeanBuilder.decap(BeanBuilder.java:350)
	at com.fasterxml.jackson.module.mrbean.BeanBuilder.getPropertyName(BeanBuilder.java:192)
	at com.fasterxml.jackson.module.mrbean.BeanBuilder.addGetter(BeanBuilder.java:209)
	at com.fasterxml.jackson.module.mrbean.BeanBuilder.implement(BeanBuilder.java:87)

I'm getting an NPE from decap function that assumes strings to be non-empty as property names should be. The addGetter (and addSetter) should check that methodName is either more than 3 or 2 chars long depending on the prefix so that cases like introducing a java.util.function.Supplier also work

                String methodName = m.getName();
                int argCount = m.getParameterTypes().length;
                if (argCount == 0) { // getter?
                    if (methodName.startsWith("get") || methodName.startsWith("is") && returnsBoolean(m)) {
                        addGetter(ctxt, m);
                        continue;
                    }
                } else if (argCount == 1 && methodName.startsWith("set")) {
                    addSetter(ctxt, m);
                    continue;
                }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions