Fork me on GitHub

SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 4.5.3

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
34 40 0 0

Files

Class Bugs
fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor 4
fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot 4
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule 7
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.AbstractCondition 2
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.ConditionsService 1
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.DebugFilter 1
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.FiltersService 1
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter 5
fr.paris.lutece.plugins.easyrulesbot.service.response.processors.MultipleValuesResponseProcessor 2
fr.paris.lutece.plugins.easyrulesbot.service.response.processors.ProcessorsService 1
fr.paris.lutece.plugins.easyrulesbot.service.yaml.YamlBotLoader 1
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot 4
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlCondition 2
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule 4
fr.paris.lutece.plugins.easyrulesbot.util.FileUtils 1

fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor.getDataMap() may expose internal representation by returning BotExecutor._mapData MALICIOUS_CODE EI_EXPOSE_REP 213 Medium
new fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor(EasyRulesBot, Locale) may expose internal representation by storing an externally mutable object into BotExecutor._bot MALICIOUS_CODE EI_EXPOSE_REP2 81 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor.setCurrentRule(BotRule) may expose internal representation by storing an externally mutable object into BotExecutor._currentRule MALICIOUS_CODE EI_EXPOSE_REP2 172 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.BotExecutor.traceData() makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR 202 Medium

fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot.getResponseFilters() may expose internal representation by returning EasyRulesBot._listResponseFilters MALICIOUS_CODE EI_EXPOSE_REP 139 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot.getRulesEngine() may expose internal representation by returning EasyRulesBot._engine MALICIOUS_CODE EI_EXPOSE_REP 106 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot.setListResponseFilters(List) may expose internal representation by storing an externally mutable object into EasyRulesBot._listResponseFilters MALICIOUS_CODE EI_EXPOSE_REP2 129 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.EasyRulesBot.setRulesEngine(RulesEngine) may expose internal representation by storing an externally mutable object into EasyRulesBot._engine MALICIOUS_CODE EI_EXPOSE_REP2 117 Medium

fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule.getButtons() may expose internal representation by returning BotRule._listButtons MALICIOUS_CODE EI_EXPOSE_REP 185 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule.setButtons(List) may expose internal representation by storing an externally mutable object into BotRule._listButtons MALICIOUS_CODE EI_EXPOSE_REP2 196 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule.setExecutor(BotExecutor) may expose internal representation by storing an externally mutable object into BotRule._executor MALICIOUS_CODE EI_EXPOSE_REP2 244 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule.setListConditions(List) may expose internal representation by storing an externally mutable object into BotRule._listConditions MALICIOUS_CODE EI_EXPOSE_REP2 276 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule defines compareTo(Object) and uses Object.equals() BAD_PRACTICE EQ_COMPARETO_USE_OBJECT_EQUALS 345-347 Medium
Class fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule defines non-transient non-serializable instance field _listButtons BAD_PRACTICE SE_BAD_FIELD Not available High
Class fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.BotRule defines non-transient non-serializable instance field _responseProcessor BAD_PRACTICE SE_BAD_FIELD Not available Medium

fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.AbstractCondition

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.AbstractCondition.getParameters() may expose internal representation by returning AbstractCondition._listParameters MALICIOUS_CODE EI_EXPOSE_REP 78 Medium
fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.AbstractCondition.setParameters(List) may expose internal representation by storing an externally mutable object into AbstractCondition._listParameters MALICIOUS_CODE EI_EXPOSE_REP2 88 Medium

fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.ConditionsService

Bug Category Details Line Priority
Incorrect lazy initialization and update of static field fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.ConditionsService._mapConditionFactories in fr.paris.lutece.plugins.easyrulesbot.service.bot.rules.conditions.ConditionsService.getCondition(String) MT_CORRECTNESS LI_LAZY_INIT_UPDATE_STATIC 59-61 High

fr.paris.lutece.plugins.easyrulesbot.service.response.filters.DebugFilter

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.DebugFilter.filterResponse(String, Locale, Map) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR 60 Medium

fr.paris.lutece.plugins.easyrulesbot.service.response.filters.FiltersService

Bug Category Details Line Priority
Incorrect lazy initialization and update of static field fr.paris.lutece.plugins.easyrulesbot.service.response.filters.FiltersService._mapFilters in fr.paris.lutece.plugins.easyrulesbot.service.response.filters.FiltersService.getFilter(String) MT_CORRECTNESS LI_LAZY_INIT_UPDATE_STATIC 58-60 High

fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter

Bug Category Details Line Priority
Random object created and used only once in fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter.getStopResponseMessage(Locale) BAD_PRACTICE DMI_RANDOM_USED_ONLY_ONCE 157 High
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter.getListStopWords() may expose internal representation by returning StopOnWordFilter._listStopWords MALICIOUS_CODE EI_EXPOSE_REP 67 Medium
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter.setListStopWords(List) may expose internal representation by storing an externally mutable object into StopOnWordFilter._listStopWords MALICIOUS_CODE EI_EXPOSE_REP2 89 Medium
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter.setMapLocaleResponseMessageFile(Map) may expose internal representation by storing an externally mutable object into StopOnWordFilter._mapLocaleResponseMessageFile MALICIOUS_CODE EI_EXPOSE_REP2 100 Medium
fr.paris.lutece.plugins.easyrulesbot.service.response.filters.StopOnWordFilter.setMapLocaleStopWordsFile(Map) may expose internal representation by storing an externally mutable object into StopOnWordFilter._mapLocaleStopWordsFile MALICIOUS_CODE EI_EXPOSE_REP2 78 Medium

fr.paris.lutece.plugins.easyrulesbot.service.response.processors.MultipleValuesResponseProcessor

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.response.processors.MultipleValuesResponseProcessor.setValueTermsMap(Map) may expose internal representation by storing an externally mutable object into MultipleValuesResponseProcessor._mapMultipleValues MALICIOUS_CODE EI_EXPOSE_REP2 73 Medium
fr.paris.lutece.plugins.easyrulesbot.service.response.processors.MultipleValuesResponseProcessor.processResponse(String, Locale, Map) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR 109 Medium

fr.paris.lutece.plugins.easyrulesbot.service.response.processors.ProcessorsService

Bug Category Details Line Priority
Incorrect lazy initialization and update of static field fr.paris.lutece.plugins.easyrulesbot.service.response.processors.ProcessorsService._mapProcessors in fr.paris.lutece.plugins.easyrulesbot.service.response.processors.ProcessorsService.getProcessor(String) MT_CORRECTNESS LI_LAZY_INIT_UPDATE_STATIC 58-60 High

fr.paris.lutece.plugins.easyrulesbot.service.yaml.YamlBotLoader

Bug Category Details Line Priority
Possible null pointer dereference in fr.paris.lutece.plugins.easyrulesbot.service.yaml.YamlBotLoader.loadBots() due to return value of called method STYLE NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE 78 Medium

fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot.getFilters() may expose internal representation by returning YamlBot._listFilters MALICIOUS_CODE EI_EXPOSE_REP 229 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot.getRules() may expose internal representation by returning YamlBot._listRules MALICIOUS_CODE EI_EXPOSE_REP 208 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot.setFilters(List) may expose internal representation by storing an externally mutable object into YamlBot._listFilters MALICIOUS_CODE EI_EXPOSE_REP2 240 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlBot.setRules(List) may expose internal representation by storing an externally mutable object into YamlBot._listRules MALICIOUS_CODE EI_EXPOSE_REP2 219 Medium

fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlCondition

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlCondition.getParameters() may expose internal representation by returning YamlCondition._listParameters MALICIOUS_CODE EI_EXPOSE_REP 76 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlCondition.setParameters(List) may expose internal representation by storing an externally mutable object into YamlCondition._listParameters MALICIOUS_CODE EI_EXPOSE_REP2 85 Medium

fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule

Bug Category Details Line Priority
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule.getButtons() may expose internal representation by returning YamlRule._listButtons MALICIOUS_CODE EI_EXPOSE_REP 146 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule.getConditions() may expose internal representation by returning YamlRule._listConditions MALICIOUS_CODE EI_EXPOSE_REP 230 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule.setButtons(List) may expose internal representation by storing an externally mutable object into YamlRule._listButtons MALICIOUS_CODE EI_EXPOSE_REP2 157 Medium
fr.paris.lutece.plugins.easyrulesbot.service.yaml.model.YamlRule.setConditions(List) may expose internal representation by storing an externally mutable object into YamlRule._listConditions MALICIOUS_CODE EI_EXPOSE_REP2 241 Medium

fr.paris.lutece.plugins.easyrulesbot.util.FileUtils

Bug Category Details Line Priority
Found reliance on default encoding in fr.paris.lutece.plugins.easyrulesbot.util.FileUtils.loadTermsFromFile(String): new java.io.FileReader(String) I18N DM_DEFAULT_ENCODING 79 High