<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<Match>
<Package name="~.*\._gen.*"/>
</Match>
<Match>
<Class name="~.*_.*"/>
</Match>
<Match>
<Class name="~.*Errors"/>
</Match>
<Match>
<Class name="~.*Configs"/>
</Match>
<Match>
<Class name="~.*Constants"/>
</Match>
<Match>
<Package name="~.*\.parse\.antlr.*"/>
</Match>
Nop 平台的配置对象、数据传输对象广泛采用直接暴露内部可变引用的设计,
配合 IoC 容器生命周期管理,不构成安全风险。 -->
<Match>
<Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2,EI_EXPOSE_STATIC_REP2"/>
</Match>
<Match>
<Bug pattern="MS_EXPOSE_REP"/>
</Match>
这些类不由不可信代码直接实例化。 -->
<Match>
<Bug pattern="CT_CONSTRUCTOR_THROW"/>
</Match>
AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE: NopIoc 容器管理对象生命周期,
setter 注入在初始化阶段单线程执行,运行期不修改,无需 volatile/atomic。
已知设计权衡,不加 volatile 以保持代码简洁。 -->
<Match>
<Bug pattern="AT_STALE_THREAD_WRITE_OF_PRIMITIVE,AT_NONATOMIC_64BIT_PRIMITIVE,AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE"/>
</Match>
这是 NopIoC 注入模式的要求(不支持 private 字段注入)。 -->
<Match>
<Bug pattern="PA_PUBLIC_PRIMITIVE_ATTRIBUTE"/>
</Match>
可变 static 字段是框架层有意设计。 -->
<Match>
<Bug pattern="MS_SHOULD_BE_FINAL,MS_PKGPROTECT"/>
</Match>
许多单例通过 IoC 容器管理或使用默认构造函数是设计选择。 -->
<Match>
<Bug pattern="SING_SINGLETON_HAS_NONPRIVATE_CONSTRUCTOR"/>
</Match>
用于区分 Boolean(三值逻辑:true/false/null)和 boolean(原始类型,仅 true/false)。
null 表示"未设置"或"未知"是项目中的标准用法。 -->
<Match>
<Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
</Match>
<Match>
<Bug pattern="HSM_HIDING_METHOD"/>
</Match>
<Match>
<Bug pattern="SE_BAD_FIELD,SE_COMPARATOR_SHOULD_BE_SERIALIZABLE,SE_TRANSIENT_FIELD_NOT_RESTORED,SE_BAD_FIELD_STORE"/>
</Match>
<Match>
<Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE"/>
</Match>
<Match>
<Bug pattern="MS_MUTABLE_ARRAY"/>
</Match>
<Match>
<Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE"/>
</Match>
<Match>
<Bug pattern="LI_LAZY_INIT_STATIC"/>
</Match>
<Match>
<Bug pattern="DM_DEFAULT_ENCODING"/>
</Match>
<Match>
<Bug pattern="SF_SWITCH_NO_DEFAULT"/>
</Match>
<Match>
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
</Match>
<Match>
<Bug pattern="DLS_DEAD_LOCAL_STORE"/>
</Match>
<Match>
<Bug pattern="UC_USELESS_OBJECT"/>
</Match>
资源泄漏由 OBL_UNSATISFIED_OBLIGATION 单独检测。 -->
<Match>
<Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
</Match>
项目中有意为之的同步模式。 -->
<Match>
<Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER"/>
</Match>
<Match>
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
</Match>
<Match>
<Bug pattern="REFLC_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_CLASS"/>
</Match>
<Match>
<Bug pattern="RR_NOT_CHECKED"/>
</Match>
<Match>
<Bug pattern="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT"/>
</Match>
<Match>
<Bug pattern="SING_SINGLETON_IMPLEMENTS_SERIALIZABLE"/>
</Match>
<Match>
<Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
</Match>
<Match>
<Bug pattern="IS2_INCONSISTENT_SYNC"/>
</Match>
</FindBugsFilter>