nutz icon indicating copy to clipboard operation
nutz copied to clipboard

org.nutz.mvc.impl.Loadings中调用ioc.get(ModuleScanner.class, nm)可能会导致NPE错误

Open zhaoyangyingmu opened this issue 1 year ago • 2 comments

Hello, 我发现在org.nutz.mvc.impl.Loadings的第121行处对ioc的直接解析可能会导致NPE错误,如下:

public static Set<Class<?>> scanModules(Ioc ioc, Class<?> mainModule, EntryDeterminer determiner) {
        Modules ann = mainModule.getAnnotation(Modules.class);
            for (String str : ann.by()) {
                if (str.startsWith("ioc:")) {
                    ms = ioc.get(ModuleScanner.class, nm);// 可能发生NPE错误。
                }
}

传递的null值在NutLoading的第87行,返回值可能为空。

ioc = createIoc(config, mainModule);

希望这个建议对你们有帮助!!

zhaoyangyingmu avatar Aug 06 '22 09:08 zhaoyangyingmu

但总得抛出异常吧

wendal avatar Aug 08 '22 07:08 wendal

方案一:检查ioc为null时,输出warning信息,并退出。 方案二:检查ioc为null时,输出warning信息,不进行解引用,继续跑程序。 方案三:检查ioc为null时,不输出warning信息,不进行解引用,继续跑程序。

zhaoyangyingmu avatar Aug 08 '22 10:08 zhaoyangyingmu