ReactiveStreams MongoClient ArrayIndexOutOfBoundsException:3

时间:2018-06-30 17:16:25

标签: mongodb bson micronaut

我遇到了一个我不理解的错误,我花了几个小时对其进行调试,但是我正在努力解决该问题。我是 reactivestreams mongo客户端的新手,这是核心问题。

所以此代码有效

Single.fromPublisher(getCollection().insertOne(newUser))
                    .map(success -> newUser)

此代码导致ArrayIndexOutOfBoundsException:3错误:

private void validateEmailAddress(String email) {

    boolean valid = EmailValidator.getInstance().isValid(email);
    if(!valid) {
        throw new InvalidParameterException("email address is not valid");
    }

    Long count = Flowable.fromPublisher(
            getCollection()
                    .find(eq("emailAddress", email))).count().blockingGet();



    if(count > 0){
        throw new InvalidParameterException("email address is already in use");
    }

}

我想补充一点,当集合中没有记录时,不会发生错误,但是一旦匹配,我就会收到该错误。

通过调试,这是失败的代码(在 org.bson.codecs.pojo.InstanceCreatorImpl 中,我不知道需要进行哪些更改以使其停止失败:

@Override
public T getInstance() {
    if (newInstance == null) {
        try {
            for (Map.Entry<String, Integer> entry : properties.entrySet()) {
                params[entry.getValue()] = null;
            }
            constructInstanceAndProcessCachedValues();
        } catch (CodecConfigurationException e) {
            throw new CodecConfigurationException(format("Could not construct new instance of: %s. "
                            + "Missing the following properties: %s",
                    creatorExecutable.getType().getSimpleName(), properties.keySet()), e);
        }
    }
    return newInstance;
}

params数组使索引超出范围,但是我不知道没有设置需要设置的属性。

如果有人可以帮助我弄清楚我的失踪之处,我敢肯定这很明显,但是我会喜欢一些指导。

0 个答案:

没有答案