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
1797000

org.sat4j.MUSLauncher

BugCategoryDetailsLinePriority
Le champ n'est pas initialisé dans le constructeur org.sat4j.MUSLauncher.xplainSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORLow

org.sat4j.core.ReadOnlyVecInt

BugCategoryDetailsLinePriority
La méthode org.sat4j.core.ReadOnlyVecInt.subset(int) devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS197Low

org.sat4j.core.Vec

BugCategoryDetailsLinePriority
Transtypage non vérifié/non confirmé de org.sat4j.core.Vec vers copy dans org.sat4j.core.Vec.copyTo(IVec)STYLEBC_UNCONFIRMED_CAST286Low
La méthode org.sat4j.core.Vec.toArray() risque d'exposer sa représentation interne en renvoyant org.sat4j.core.Vec.myarrayMALICIOUS_CODEEI_EXPOSE_REP318Medium
La méthode new org.sat4j.core.Vec(Object[]) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.core.Vec.myarrayMALICIOUS_CODEEI_EXPOSE_REP286Medium

org.sat4j.core.VecInt

BugCategoryDetailsLinePriority
Transtypage non vérifié/non confirmé de org.sat4j.core.VecInt vers copy dans org.sat4j.core.VecInt.copyTo(IVecInt)STYLEBC_UNCONFIRMED_CAST375Low
Transtypage non vérifié/non confirmé de org.sat4j.core.VecInt vers dest dans org.sat4j.core.VecInt.moveTo2(IVecInt)STYLEBC_UNCONFIRMED_CAST399Low
Transtypage non vérifié/non confirmé de org.sat4j.core.VecInt vers vec dans org.sat4j.core.VecInt.pushAll(IVecInt)STYLEBC_UNCONFIRMED_CAST617Low
La méthode org.sat4j.core.VecInt.toArray() risque d'exposer sa représentation interne en renvoyant org.sat4j.core.VecInt.myarrayMALICIOUS_CODEEI_EXPOSE_REP670Medium
La méthode new org.sat4j.core.VecInt(int[]) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.core.VecInt.myarrayMALICIOUS_CODEEI_EXPOSE_REP2234Medium
Double assignment of field VecInt.nbelem in org.sat4j.core.VecInt.moveTo2(IVecInt)CORRECTNESSSA_FIELD_DOUBLE_ASSIGNMENT406Medium

org.sat4j.minisat.constraints.cnf.Lits

BugCategoryDetailsLinePriority
La classe org.sat4j.minisat.constraints.cnf.Lits définit le champ d'instance org.sat4j.minisat.constraints.cnf.Lits.reason non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.minisat.core.Heap

BugCategoryDetailsLinePriority
La méthode new org.sat4j.minisat.core.Heap(double[]) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.minisat.core.Heap.activityMALICIOUS_CODEEI_EXPOSE_REP2102Medium

org.sat4j.minisat.core.Pair

BugCategoryDetailsLinePriority
La classe org.sat4j.minisat.core.Pair définit le champ d'instance org.sat4j.minisat.core.Pair.reason non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.minisat.core.Solver

BugCategoryDetailsLinePriority
Transtypage non vérifié/non confirmé de org.sat4j.minisat.core.Constr vers co dans org.sat4j.minisat.core.Solver.removeConstr(IConstr)STYLEBC_UNCONFIRMED_CAST362Low
Transtypage non vérifié/non confirmé de org.sat4j.minisat.core.Constr vers co dans org.sat4j.minisat.core.Solver.removeSubsumedConstr(IConstr)STYLEBC_UNCONFIRMED_CAST383Low
org.sat4j.minisat.core.Solver.reduceDB() force le déclenchement du ramasse-miettes ; extrêmement douteux sauf dans du code de banc d'essaiPERFORMANCEDM_GC1290High
La méthode org.sat4j.minisat.core.Solver.findModel() devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS1964Low
La méthode org.sat4j.minisat.core.Solver.findModel(IVecInt) devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS1973Low
La méthode org.sat4j.minisat.core.Solver.setSimplifier(String) intercepte Exception, mais Exception n'est pas lancé dans le bloc try/catch et RuntimeException n'est pas appeléSTYLEREC_CATCH_EXCEPTION747Low
La classe org.sat4j.minisat.core.Solver définit le champ d'instance org.sat4j.minisat.core.Solver.constrTypes non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.minisat.core.Solver définit le champ d'instance org.sat4j.minisat.core.Solver.order non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
Switch statement found in org.sat4j.minisat.core.Solver.learn(Constr) where default case is missingSTYLESF_SWITCH_NO_DEFAULT328Low

org.sat4j.minisat.core.Solver$2

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$2 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$3

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$3 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$4

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$4 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$5

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$5 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$6

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$6 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$7

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$7 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.core.Solver$9

BugCategoryDetailsLinePriority
org.sat4j.minisat.core.Solver$9 is serializable and an inner classBAD_PRACTICESE_INNER_CLASS1Low

org.sat4j.minisat.learning.ActiveLearning

BugCategoryDetailsLinePriority
La classe org.sat4j.minisat.learning.ActiveLearning définit le champ d'instance org.sat4j.minisat.learning.ActiveLearning.order non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.minisat.learning.LimitedLearning

BugCategoryDetailsLinePriority
Le champ n'est pas initialisé dans le constructeur org.sat4j.minisat.learning.LimitedLearning.statsSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORLow

org.sat4j.minisat.learning.MiniSATLearning

BugCategoryDetailsLinePriority
Le champ n'est pas initialisé dans le constructeur org.sat4j.minisat.learning.MiniSATLearning.dsfSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORLow

org.sat4j.opt.AbstractSelectorVariablesDecorator

BugCategoryDetailsLinePriority
La méthode org.sat4j.opt.AbstractSelectorVariablesDecorator.model() risque d'exposer sa représentation interne en renvoyant org.sat4j.opt.AbstractSelectorVariablesDecorator.prevmodelMALICIOUS_CODEEI_EXPOSE_REP112Medium

org.sat4j.opt.MaxSatDecorator

BugCategoryDetailsLinePriority
La classe org.sat4j.opt.MaxSatDecorator définit le champ d'instance org.sat4j.opt.MaxSatDecorator.prevConstr non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium

org.sat4j.opt.MinOneDecorator

BugCategoryDetailsLinePriority
La méthode org.sat4j.opt.MinOneDecorator.model() risque d'exposer sa représentation interne en renvoyant org.sat4j.opt.MinOneDecorator.prevmodelMALICIOUS_CODEEI_EXPOSE_REP128Medium
La classe org.sat4j.opt.MinOneDecorator définit le champ d'instance org.sat4j.opt.MinOneDecorator.previousConstr non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium
Le champ n'est pas initialisé dans le constructeur org.sat4j.opt.MinOneDecorator.prevmodelSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORLow

org.sat4j.reader.EfficientScanner

BugCategoryDetailsLinePriority
Le champ org.sat4j.reader.EfficientScanner.in est transient mais n'est pas alimenté lors de la désérialisationBAD_PRACTICESE_TRANSIENT_FIELD_NOT_RESTOREDLow

org.sat4j.reader.GroupedCNFReader

BugCategoryDetailsLinePriority
Test de nullité redondant sur une valeur non nulle dans org.sat4j.reader.GroupedCNFReader.readProblemLine()STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE41Low

org.sat4j.reader.LecteurDimacs

BugCategoryDetailsLinePriority
Le champ n'est pas initialisé dans le constructeur org.sat4j.reader.LecteurDimacs.inSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORLow

org.sat4j.tools.ClausalCardinalitiesDecorator

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.ClausalCardinalitiesDecorator définit le champ d'instance org.sat4j.tools.ClausalCardinalitiesDecorator.encodingAdapter non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium
org.sat4j.tools.encoding.Policy est stocké dans le champ non transient org.sat4j.tools.ClausalCardinalitiesDecorator.encodingAdapterBAD_PRACTICESE_BAD_FIELD_STORE58Medium

org.sat4j.tools.ConflictLevelTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.ConflictLevelTracing définit le champ d'instance org.sat4j.tools.ConflictLevelTracing.out non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium

org.sat4j.tools.DecisionLevelTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.DecisionLevelTracing définit le champ d'instance org.sat4j.tools.DecisionLevelTracing.out non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium

org.sat4j.tools.DecisionTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.DecisionTracing définit le champ d'instance org.sat4j.tools.DecisionTracing.out non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium

org.sat4j.tools.DotSearchTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.DotSearchTracing définit le champ d'instance org.sat4j.tools.DotSearchTracing.mapping non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.tools.LearnedClauseSizeTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.LearnedClauseSizeTracing définit le champ d'instance org.sat4j.tools.LearnedClauseSizeTracing.out non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDMedium

org.sat4j.tools.LexicoDecorator

BugCategoryDetailsLinePriority
La méthode org.sat4j.tools.LexicoDecorator.model() risque d'exposer sa représentation interne en renvoyant org.sat4j.tools.LexicoDecorator.prevfullmodelMALICIOUS_CODEEI_EXPOSE_REP136Medium
La classe org.sat4j.tools.LexicoDecorator définit le champ d'instance org.sat4j.tools.LexicoDecorator.prevConstr non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.tools.ManyCore

BugCategoryDetailsLinePriority
La méthode new org.sat4j.tools.ManyCore(ASolverFactory, String[]) risque d'exposer sa représentation interne en stockant un objet externe modifiable dans org.sat4j.tools.ManyCore.availableSolversMALICIOUS_CODEEI_EXPOSE_REP271Medium
Synchronisation incohérente de org.sat4j.tools.ManyCore.resultFound; verrouillée à 50%MT_CORRECTNESSIS2_INCONSISTENT_SYNC308Medium
La méthode org.sat4j.tools.ManyCore.findModel() devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS273Low
La méthode org.sat4j.tools.ManyCore.findModel(IVecInt) devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS281Low

org.sat4j.tools.Minimal4CardinalityModel

BugCategoryDetailsLinePriority
Alimentation à perte d'une variable locale dans la méthode org.sat4j.tools.Minimal4CardinalityModel.model()STYLEDLS_DEAD_LOCAL_STORE63Low

org.sat4j.tools.Minimal4InclusionModel

BugCategoryDetailsLinePriority
Alimentation à perte d'une variable locale dans la méthode org.sat4j.tools.Minimal4InclusionModel.model()STYLEDLS_DEAD_LOCAL_STORE68Low

org.sat4j.tools.TextOutputTracing

BugCategoryDetailsLinePriority
La classe org.sat4j.tools.TextOutputTracing définit le champ d'instance org.sat4j.tools.TextOutputTracing.mapping non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow

org.sat4j.tools.encoding.Commander

BugCategoryDetailsLinePriority
La méthode privée org.sat4j.tools.encoding.Commander.addAtMost(ISolver, IVecInt, int, int) n'est jamais appeléePERFORMANCEUPM_UNCALLED_PRIVATE_METHOD148Medium

org.sat4j.tools.encoding.Policy

BugCategoryDetailsLinePriority
Champ inutilisé : org.sat4j.tools.encoding.Policy.binaryPERFORMANCEURF_UNREAD_FIELD46Low
Champ inutilisé : org.sat4j.tools.encoding.Policy.productPERFORMANCEURF_UNREAD_FIELD47Low
Champ inutilisé : org.sat4j.tools.encoding.Policy.seqPERFORMANCEURF_UNREAD_FIELD45Low

org.sat4j.tools.xplain.HighLevelXplain

BugCategoryDetailsLinePriority
La méthode org.sat4j.tools.xplain.HighLevelXplain.model() devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS247Low
La classe org.sat4j.tools.xplain.HighLevelXplain définit le champ d'instance org.sat4j.tools.xplain.HighLevelXplain.xplainStrategy non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
org.sat4j.tools.xplain.DeletionStrategy est stocké dans le champ non transient org.sat4j.tools.xplain.HighLevelXplain.xplainStrategyBAD_PRACTICESE_BAD_FIELD_STORE65Medium

org.sat4j.tools.xplain.Pair

BugCategoryDetailsLinePriority
org.sat4j.tools.xplain.Pair defines compareTo(Pair) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS46Medium
Test d'égalité en virgule flottante dans org.sat4j.tools.xplain.Pair.compareTo(Pair).STYLEFE_FLOATING_POINT_EQUALITY48Low

org.sat4j.tools.xplain.Xplain

BugCategoryDetailsLinePriority
La méthode org.sat4j.tools.xplain.Xplain.model() devrait-elle renvoyer un tableau vide plutôt que null ?STYLEPZLA_PREFER_ZERO_LENGTH_ARRAYS274Low
La classe org.sat4j.tools.xplain.Xplain définit le champ d'instance org.sat4j.tools.xplain.Xplain.lastConstr non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
La classe org.sat4j.tools.xplain.Xplain définit le champ d'instance org.sat4j.tools.xplain.Xplain.xplainStrategy non transient et non sérialisableBAD_PRACTICESE_BAD_FIELDLow
org.sat4j.tools.xplain.DeletionStrategy est stocké dans le champ non transient org.sat4j.tools.xplain.Xplain.xplainStrategyBAD_PRACTICESE_BAD_FIELD_STORE73Medium