FindBugs Bug Detector Report

The following document contains the results of FindBugs Report

FindBugs Version is 1.3.9

Threshold is low

Effort is min

Summary

ClassesBugsErrorsMissing Classes
783700

org.sat4j.sat.CleanCommandComponent

BugCategoryDetailsLinePriority
Method org.sat4j.sat.CleanCommandComponent.createPanel() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR109Medium

org.sat4j.sat.DetailedCommandPanel

BugCategoryDetailsLinePriority
La méthode new org.sat4j.sat.DetailedCommandPanel(String, String, String[], RemoteControlFrame) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.sat.DetailedCommandPanel.commandLinesMALICIOUS_CODEEI_EXPOSE_REP2256Medium
Appel à une méthode non virtuelle dans new org.sat4j.sat.DetailedCommandPanel(String, String, RemoteControlFrame) passant null à un paramètre déréférencé inconditionnellement dans new org.sat4j.sat.DetailedCommandPanel(String, String, String[], RemoteControlFrame)CORRECTNESSNP_NULL_PARAM_DEREF_NONVIRTUAL239High
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.outSolutionFound non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.randomWalk non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.solverVisu non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.solveurThread non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.stringWriter non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.sat.DetailedCommandPanel définit le champ d'instance org.sat4j.sat.DetailedCommandPanel.visuPreferences non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
org.sat4j.pb.orders.RandomWalkDecoratorObjective est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.randomWalkBAD_PRACTICESE_BAD_FIELD_STORE625Medium
org.sat4j.pb.orders.RandomWalkDecoratorObjective est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.randomWalkBAD_PRACTICESE_BAD_FIELD_STORE705Medium
org.sat4j.sat.visu.GnuplotBasedSolverVisualisation est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.solverVisuBAD_PRACTICESE_BAD_FIELD_STORE843Medium
org.sat4j.sat.visu.JChartBasedSolverVisualisation est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.solverVisuBAD_PRACTICESE_BAD_FIELD_STORE355Medium
org.sat4j.sat.visu.JChartBasedSolverVisualisation est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.solverVisuBAD_PRACTICESE_BAD_FIELD_STORE931Medium
org.sat4j.sat.DetailedCommandPanel$9 est stocké dans le champ non transient org.sat4j.sat.DetailedCommandPanel.solveurThreadBAD_PRACTICESE_BAD_FIELD_STORE791Medium

org.sat4j.sat.Lanceur

BugCategoryDetailsLinePriority
org.sat4j.sat.Lanceur.run(String[]) invoque System.exit(...), qui stoppe toute la JVMBAD_PRACTICEDM_EXIT419Medium
La méthode org.sat4j.sat.Lanceur.configureSolver(String[]) intercepte Exception, mais Exception n'est pas lancé dans le bloc try/catch et RuntimeException n'est pas appeléSTYLEREC_CATCH_EXCEPTION152Low

org.sat4j.sat.LaunchRemoteControl

BugCategoryDetailsLinePriority
Switch statement found in org.sat4j.sat.LaunchRemoteControl.main(String[]) where default case is missingSTYLESF_SWITCH_NO_DEFAULT75Low

org.sat4j.sat.RTSI

BugCategoryDetailsLinePriority
org.sat4j.sat.RTSI.findnames(String, Class) invoque le constructeur inutile String(String) ; utilisez juste l'argumentPERFORMANCEDM_STRING_CTOR106Medium
org.sat4j.sat.RTSI.alreadySeenPckges devrait être package protectedMALICIOUS_CODEMS_PKGPROTECTMedium

org.sat4j.sat.RemoteControlFrame

BugCategoryDetailsLinePriority
La méthode new org.sat4j.sat.RemoteControlFrame(String, String, String[]) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.sat.RemoteControlFrame.argsMALICIOUS_CODEEI_EXPOSE_REP2106Medium
La classe org.sat4j.sat.RemoteControlFrame définit le champ d'instance org.sat4j.sat.RemoteControlFrame.randomWalk non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.sat.RemoteControlFrame$5

BugCategoryDetailsLinePriority
org.sat4j.sat.RemoteControlFrame$5.actionPerformed(ActionEvent) invoque System.exit(...), qui stoppe toute la JVMBAD_PRACTICEDM_EXIT291Medium

org.sat4j.sat.RemoteControlStrategy

BugCategoryDetailsLinePriority
La classe org.sat4j.sat.RemoteControlStrategy définit le champ d'instance org.sat4j.sat.RemoteControlStrategy.logger non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.sat.RestartCommandComponent

BugCategoryDetailsLinePriority
Alimentation à perte d'une variable locale dans la méthode org.sat4j.sat.RestartCommandComponent.hasClickedOnChange()STYLEDLS_DEAD_LOCAL_STORE193Low
Alimentation à perte d'une variable locale dans la méthode org.sat4j.sat.RestartCommandComponent.hasClickedOnChange()STYLEDLS_DEAD_LOCAL_STORE191Low

org.sat4j.sat.Solvers

BugCategoryDetailsLinePriority
La méthode org.sat4j.sat.Solvers.configureSolver(String[], ICDCLLogger) intercepte Exception, mais Exception n'est pas lancé dans le bloc try/catch et RuntimeException n'est pas appeléSTYLEREC_CATCH_EXCEPTION320Low

org.sat4j.sat.visu.GnuplotBasedSolverVisualisation

BugCategoryDetailsLinePriority
Résultat d'une division entière transtypé en nombre flottant à double précision dans org.sat4j.sat.visu.GnuplotBasedSolverVisualisation.traceGnuplot()STYLEICAST_IDIV_CAST_TO_DOUBLE289Medium

org.sat4j.sat.visu.GnuplotBasedSolverVisualisation$1

BugCategoryDetailsLinePriority
La méthode org.sat4j.sat.visu.GnuplotBasedSolverVisualisation$1.run() invoque String.toUpperCase() ou String.toLowerCase ; utilisez plutôt la version acceptant une LocaleI18NDM_CONVERT_CASE329Low
La méthode org.sat4j.sat.visu.GnuplotBasedSolverVisualisation$1.run() peut ne pas fermer un fluxBAD_PRACTICEOS_OPEN_STREAM321Medium

org.sat4j.sat.visu.JChartBasedSolverVisualisation$1

BugCategoryDetailsLinePriority
La classe org.sat4j.sat.visu.JChartBasedSolverVisualisation$1 pourrait-être transformée en classe interne staticPERFORMANCESIC_INNER_SHOULD_BE_STATIC_ANON1Low

org.sat4j.sat.visu.TraceComposite

BugCategoryDetailsLinePriority
org.sat4j.sat.visu.TraceComposite defines compareTo(Object) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS1Medium
La méthode org.sat4j.sat.visu.TraceComposite.getPropertyChangeListeners(String) devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS185Low

org.sat4j.sat.visu.VisuPreferences

BugCategoryDetailsLinePriority
La méthode org.sat4j.sat.visu.VisuPreferences.generatePlotLine(GnuplotDataFile[], GnuplotFunction[], String, boolean, int) concatène des chaînes au moyen de + en bouclePERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION323Medium
La méthode org.sat4j.sat.visu.VisuPreferences.generatePlotLineOnDifferenteAxes(GnuplotDataFile[], GnuplotDataFile[], GnuplotFunction[], boolean, int) concatène des chaînes au moyen de + en bouclePERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION383Medium

org.sat4j.sat.visu.VisuPreferencesFrame

BugCategoryDetailsLinePriority
La classe org.sat4j.sat.visu.VisuPreferencesFrame définit le champ d'instance org.sat4j.sat.visu.VisuPreferencesFrame.preferences non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow