FindBugs Bug Detector Report

The following document contains the results of FindBugs Report

FindBugs Version is 1.2.0

Threshold is Low

Effort is Default

Summary

ClassesBugsErrorsMissing Classes
270162400

Files

ClassBugs
fabdouglas.Starter2
fabdouglas.Starter$11
net.sf.firemox.DeckBuilder16
net.sf.firemox.Magic11
net.sf.firemox.Magic$11
net.sf.firemox.action.ActionFactory1
net.sf.firemox.action.AddModifierFromStaticModifier1
net.sf.firemox.action.AssignDamageFromTo1
net.sf.firemox.action.GiveManaMulti2
net.sf.firemox.action.InputChoice2
net.sf.firemox.action.ModifyTargetableRegister2
net.sf.firemox.action.MoveCard1
net.sf.firemox.action.MoveObject1
net.sf.firemox.action.NextCurrentPlayer1
net.sf.firemox.action.PayMana4
net.sf.firemox.action.RemoveObject1
net.sf.firemox.action.Tap1
net.sf.firemox.action.UnregisterThis1
net.sf.firemox.action.UserAction1
net.sf.firemox.action.WaitActivatedChoice4
net.sf.firemox.action.target.AbstractTarget1
net.sf.firemox.chart.CardColor1
net.sf.firemox.chart.CardTypes1
net.sf.firemox.chart.ChartFilter3
net.sf.firemox.chart.ChartFilter$MAreaPlot1
net.sf.firemox.chart.ChartFilter$MBarPlot1
net.sf.firemox.chart.ChartFilter$MPiePlot1
net.sf.firemox.chart.datasets.BarDataset1
net.sf.firemox.chart.datasets.CategoryDataset1
net.sf.firemox.chart.datasets.PieDataset1
net.sf.firemox.clickable.ability.Ability2
net.sf.firemox.clickable.ability.AbstractAbility2
net.sf.firemox.clickable.ability.Optimization1
net.sf.firemox.clickable.ability.SystemAbility2
net.sf.firemox.clickable.ability.TriggeredAbilitySet$NestedAbility1
net.sf.firemox.clickable.ability.UserAbility3
net.sf.firemox.clickable.action.ChosenCostPanel1
net.sf.firemox.clickable.action.JChosenAction3
net.sf.firemox.clickable.mana.Mana1
net.sf.firemox.clickable.target.TargetFactory5
net.sf.firemox.clickable.target.card.AbstractCard1
net.sf.firemox.clickable.target.card.AbstractCardModel1
net.sf.firemox.clickable.target.card.Attachment1
net.sf.firemox.clickable.target.card.CardFactory14
net.sf.firemox.clickable.target.card.CardModelImpl1
net.sf.firemox.clickable.target.card.DelayedCard2
net.sf.firemox.clickable.target.card.LastKnownCard1
net.sf.firemox.clickable.target.card.MCard8
net.sf.firemox.clickable.target.card.SystemCard2
net.sf.firemox.clickable.target.card.TriggeredCard8
net.sf.firemox.clickable.target.card.TriggeredCardChoice4
net.sf.firemox.clickable.target.card.VirtualCard6
net.sf.firemox.clickable.target.player.Opponent1
net.sf.firemox.clickable.target.player.Player6
net.sf.firemox.database.DatabaseCard4
net.sf.firemox.database.DatabaseFactory10
net.sf.firemox.database.Proxy6
net.sf.firemox.database.UrlTokenizer1
net.sf.firemox.database.XmlDeckTranslator2
net.sf.firemox.database.data.CollectionData1
net.sf.firemox.database.propertyconfig.PropertyConfig1
net.sf.firemox.database.propertyconfig.PropertyProxyConfig2
net.sf.firemox.deckbuilder.BuildBook3
net.sf.firemox.deckbuilder.CardLoader1
net.sf.firemox.deckbuilder.CardView1
net.sf.firemox.deckbuilder.ConstraintsChecker1
net.sf.firemox.deckbuilder.Deck1
net.sf.firemox.deckbuilder.DeckConstraint4
net.sf.firemox.deckbuilder.DeckConstraints1
net.sf.firemox.deckbuilder.MdbLoader15
net.sf.firemox.event.MEventListener1
net.sf.firemox.event.TriggeredEvent2
net.sf.firemox.event.UncaughtException1
net.sf.firemox.event.phase.BeforePhase1
net.sf.firemox.event.phase.BeginningPhase1
net.sf.firemox.event.phase.EndOfPhase1
net.sf.firemox.event.phase.PhaseFilter2
net.sf.firemox.expression.Counter1
net.sf.firemox.expression.DeckCounter2
net.sf.firemox.expression.ObjectValue2
net.sf.firemox.expression.StringMethod1
net.sf.firemox.mail.MailUtils1
net.sf.firemox.management.MonitoredCheckContent1
net.sf.firemox.modifier.AbilityModifier1
net.sf.firemox.modifier.Modifier1
net.sf.firemox.modifier.model.AbilityModifierModel1
net.sf.firemox.modifier.model.AdditionalCostModifierModel1
net.sf.firemox.modifier.model.ColorModifierModel2
net.sf.firemox.modifier.model.ControllerModifierModel1
net.sf.firemox.modifier.model.IdCardModifierModel1
net.sf.firemox.modifier.model.ObjectAbilityModifierModel1
net.sf.firemox.modifier.model.PlayableZoneModifierModel1
net.sf.firemox.modifier.model.PropertyModifierModel1
net.sf.firemox.modifier.model.RegisterIndirectionModel1
net.sf.firemox.modifier.model.RegisterModifierModel1
net.sf.firemox.modifier.model.StaticModifierModel1
net.sf.firemox.network.Client8
net.sf.firemox.network.ConnectionManager3
net.sf.firemox.network.MBigPipe2
net.sf.firemox.network.MMiniPipe1
net.sf.firemox.network.MSocketListener4
net.sf.firemox.network.NetworkActor5
net.sf.firemox.network.Server8
net.sf.firemox.network.message.CoreMessage3
net.sf.firemox.stack.ActionManager8
net.sf.firemox.stack.EventManager6
net.sf.firemox.stack.MPhase12
net.sf.firemox.stack.StackManager27
net.sf.firemox.test.DeckCounter6
net.sf.firemox.test.PlayableAbility1
net.sf.firemox.test.TestOn5
net.sf.firemox.token.IdAbilities2
net.sf.firemox.token.IdCardColors3
net.sf.firemox.token.IdCommonToken1
net.sf.firemox.token.IdConst3
net.sf.firemox.token.IdPositions2
net.sf.firemox.token.IdTargets2
net.sf.firemox.token.IdTokens2
net.sf.firemox.token.IdZones2
net.sf.firemox.token.MCommonVars3
net.sf.firemox.token.Register3
net.sf.firemox.token.TrueFalseAuto1
net.sf.firemox.token.Visibility2
net.sf.firemox.tools.FileFilterPlus3
net.sf.firemox.tools.HistoComboboxModel1
net.sf.firemox.tools.IntegerList1
net.sf.firemox.tools.JavaVersion2
net.sf.firemox.tools.MCardCompare6
net.sf.firemox.tools.MToolKit9
net.sf.firemox.tools.Picture4
net.sf.firemox.tools.RevertedArrayList2
net.sf.firemox.tools.RollingFileAppender1
net.sf.firemox.tools.TimerTarget1
net.sf.firemox.tools.VersionChecker1
net.sf.firemox.ui.HireListener1
net.sf.firemox.ui.MCardTableModel1
net.sf.firemox.ui.MListModel2
net.sf.firemox.ui.MagicUIComponents60
net.sf.firemox.ui.MagicUIComponents$11
net.sf.firemox.ui.MdbListener1
net.sf.firemox.ui.SkinLF1
net.sf.firemox.ui.TargetGlassPane2
net.sf.firemox.ui.TimerGlassPane5
net.sf.firemox.ui.ToolKit1
net.sf.firemox.ui.TooltipFilter1
net.sf.firemox.ui.component.ChatArea3
net.sf.firemox.ui.component.EditorPane2
net.sf.firemox.ui.component.JPrompt2
net.sf.firemox.ui.component.LoaderConsole4
net.sf.firemox.ui.component.LoaderConsole$11
net.sf.firemox.ui.component.MessageButton3
net.sf.firemox.ui.component.MiniCard1
net.sf.firemox.ui.component.TableTop3
net.sf.firemox.ui.component.ThreadSafeJList1
net.sf.firemox.ui.component.task.LinkAction1
net.sf.firemox.ui.i18n.LanguageManager2
net.sf.firemox.ui.layout.AttachmentLayout3
net.sf.firemox.ui.layout.BorderLayout21
net.sf.firemox.ui.layout.FlowLayoutVertical21
net.sf.firemox.ui.wizard.Arrange1
net.sf.firemox.ui.wizard.Bug3
net.sf.firemox.ui.wizard.Choice5
net.sf.firemox.ui.wizard.Client2
net.sf.firemox.ui.wizard.InputColor1
net.sf.firemox.ui.wizard.InputNumber2
net.sf.firemox.ui.wizard.InputProperty1
net.sf.firemox.ui.wizard.InputZone1
net.sf.firemox.ui.wizard.Log2
net.sf.firemox.ui.wizard.Network1
net.sf.firemox.ui.wizard.Replacement7
net.sf.firemox.ui.wizard.Server3
net.sf.firemox.ui.wizard.Wizard4
net.sf.firemox.ui.wizard.WizardImageIcon2
net.sf.firemox.ui.wizard.WizardTitle$11
net.sf.firemox.xml.Options8
net.sf.firemox.xml.XmlConfiguration2
net.sf.firemox.xml.XmlDeckTranslator2
net.sf.firemox.xml.XmlParser1
net.sf.firemox.xml.XmlParser$Handler1
net.sf.firemox.xml.XmlTbs9
net.sf.firemox.xml.XmlTools6
net.sf.firemox.xml.action.Choice1
net.sf.firemox.xml.action.Intlist1
net.sf.firemox.xml.action.Target1
net.sf.firemox.xml.action.Targetlist1
net.sf.firemox.xml.expression.Counter1
net.sf.firemox.xml.magic.Options5
net.sf.firemox.xml.magic.Oracle2Xml7
net.sf.firemox.xml.magic.Oracle2XmlNoRules6
net.sf.firemox.xml.tbs.Activatedability2
net.sf.firemox.xml.tbs.Card1
net.sf.firemox.xml.tbs.Replacementability2
net.sf.firemox.xml.tbs.Systemability2
net.sf.firemox.xml.tbs.Tbs24
net.sf.firemox.xml.tbs.Triggeredability4
net.sf.firemox.zone.ExpandableZone2
net.sf.firemox.zone.PopupManager3
net.sf.firemox.zone.TriggeredBuffer3
net.sf.firemox.zone.ZoneManager3
org.mortbay.util.Password1

fabdouglas.Starter

BugCategoryDetailsLine
fabdouglas.Starter.init(String, String[]) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT62
fabdouglas.Starter.boot(List, String, String[]) creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged blockBAD_PRACTICEDP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED103

fabdouglas.Starter$1

BugCategoryDetailsLine
The class fabdouglas.Starter$1 could be refactored into a named _static_ inner classPERFORMANCESIC_INNER_SHOULD_BE_STATIC_ANONNot available

net.sf.firemox.DeckBuilder

BugCategoryDetailsLine
Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.allListModelSTYLECI_CONFUSED_INHERITANCENot available
Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.cardLoaderSTYLECI_CONFUSED_INHERITANCENot available
Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.leftListSTYLECI_CONFUSED_INHERITANCENot available
Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.rightListModelSTYLECI_CONFUSED_INHERITANCENot available
Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.timerSTYLECI_CONFUSED_INHERITANCENot available
net.sf.firemox.DeckBuilder.DeckBuilder() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE175
net.sf.firemox.DeckBuilder.actionPerformed(ActionEvent) might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE875
net.sf.firemox.DeckBuilder.form isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.DeckBuilder.consoleMode should be package protectedMALICIOUS_CODEMS_PKGPROTECT1221
Class net.sf.firemox.DeckBuilder defines non-transient non-serializable instance field cardLoaderBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.DeckBuilder defines non-transient non-serializable instance field datasetsBAD_PRACTICESE_BAD_FIELDNot available
Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD859
Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.refreshAddComponent(boolean)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD699
Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.setAsSaved()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD1034
Write to static field net.sf.firemox.DeckBuilder.form from instance method net.sf.firemox.DeckBuilder.DeckBuilder()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD168
Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.removeCardFromDeck()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD731

net.sf.firemox.Magic

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE311
net.sf.firemox.Magic.batchMode should be package protectedMALICIOUS_CODEMS_PKGPROTECT359
Exception is caught when Exception is not thrown in net.sf.firemox.Magic.Magic()STYLEREC_CATCH_EXCEPTION175
Write to static field net.sf.firemox.token.MCommonVars.autoMana from instance method net.sf.firemox.Magic.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD612
Write to static field net.sf.firemox.token.MCommonVars.autoStack from instance method net.sf.firemox.Magic.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD618
Write to static field net.sf.firemox.action.PayMana.thresholdColored from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD231
Write to static field net.sf.firemox.network.ConnectionManager.client from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD253
Write to static field net.sf.firemox.network.ConnectionManager.server from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD249
Write to static field net.sf.firemox.token.MCommonVars.autoMana from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD219
Write to static field net.sf.firemox.token.MCommonVars.autoStack from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD227
Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.Magic.Magic()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD223

net.sf.firemox.Magic$1

BugCategoryDetailsLine
The class net.sf.firemox.Magic$1 could be refactored into a named _static_ inner classPERFORMANCESIC_INNER_SHOULD_BE_STATIC_ANONNot available

net.sf.firemox.action.ActionFactory

BugCategoryDetailsLine
Class net.sf.firemox.action.ActionFactory is final but declares protected field net.sf.firemox.action.ActionFactory.PICTURESSTYLECI_CONFUSED_INHERITANCENot available

net.sf.firemox.action.AddModifierFromStaticModifier

BugCategoryDetailsLine
net.sf.firemox.action.AddModifierFromStaticModifier.AddModifierFromStaticModifier(ModifierModel[]) may expose internal representation by storing an externally mutable object into AddModifierFromStaticModifier.modifiersMALICIOUS_CODEEI_EXPOSE_REP242

net.sf.firemox.action.AssignDamageFromTo

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.action.AssignDamageFromTo.toString(Ability)STYLEREC_CATCH_EXCEPTION82

net.sf.firemox.action.GiveManaMulti

BugCategoryDetailsLine
Method net.sf.firemox.action.GiveManaMulti.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION138
Method net.sf.firemox.action.GiveManaMulti.toString(Ability) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION176

net.sf.firemox.action.InputChoice

BugCategoryDetailsLine
Method net.sf.firemox.action.InputChoice.getActionList(Ability, MAction[], int, ContextEventListener) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION290
Method net.sf.firemox.action.InputChoice.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION185

net.sf.firemox.action.ModifyTargetableRegister

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.target.Target to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.action.ModifyTargetableRegister.modifyRegister(MCard, Target, int, int, Operation)STYLEBC_UNCONFIRMED_CAST144
Unchecked/unconfirmed cast from net.sf.firemox.clickable.target.Target to net.sf.firemox.clickable.target.player.Player in net.sf.firemox.action.ModifyTargetableRegister.modifyRegister(MCard, Target, int, int, Operation)STYLEBC_UNCONFIRMED_CAST143

net.sf.firemox.action.MoveCard

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.ui.wizard.Wizard to net.sf.firemox.ui.wizard.Arrange in net.sf.firemox.action.MoveCard.replayAction(ContextEventListener, Ability, Wizard)STYLEBC_UNCONFIRMED_CAST111

net.sf.firemox.action.MoveObject

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.target.Target to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.action.MoveObject.checkObject(Ability, Target, int)STYLEBC_UNCONFIRMED_CAST148

net.sf.firemox.action.NextCurrentPlayer

BugCategoryDetailsLine
Write to static field net.sf.firemox.stack.EventManager.nextCurrentPlayer from instance method net.sf.firemox.action.NextCurrentPlayer.play(ContextEventListener, Ability)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD67

net.sf.firemox.action.PayMana

BugCategoryDetailsLine
net.sf.firemox.action.PayMana.thresholdColored isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.action.PayMana.useMana isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Method net.sf.firemox.action.PayMana.toHtmlString(int[]) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION122
Method net.sf.firemox.action.PayMana.toString(Ability) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION557

net.sf.firemox.action.RemoveObject

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.target.Target to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.action.RemoveObject.checkObject(Target, int)STYLEBC_UNCONFIRMED_CAST91

net.sf.firemox.action.Tap

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.action.MAction to net.sf.firemox.action.Tap in net.sf.firemox.action.Tap.equal(MAction)STYLEBC_UNCONFIRMED_CAST132

net.sf.firemox.action.UnregisterThis

BugCategoryDetailsLine
net.sf.firemox.action.UnregisterThis.instance isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL68

net.sf.firemox.action.UserAction

BugCategoryDetailsLine
Write to static field net.sf.firemox.action.ActionFactory.currentAction from instance method net.sf.firemox.action.UserAction.UserAction(String, String)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD91

net.sf.firemox.action.WaitActivatedChoice

BugCategoryDetailsLine
net.sf.firemox.action.WaitActivatedChoice.opponentResponse isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD182
Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD183
Write to static field net.sf.firemox.stack.StackManager.oldIdHandedPlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD194

net.sf.firemox.action.target.AbstractTarget

BugCategoryDetailsLine
Class net.sf.firemox.action.target.AbstractTarget implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available

net.sf.firemox.chart.CardColor

BugCategoryDetailsLine
net.sf.firemox.chart.CardColor defines compareTo(Object) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS27

net.sf.firemox.chart.CardTypes

BugCategoryDetailsLine
net.sf.firemox.chart.CardTypes defines compareTo(Object) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS27

net.sf.firemox.chart.ChartFilter

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.chart.datasets.Dataset to net.sf.firemox.chart.datasets.BarDataset in net.sf.firemox.chart.ChartFilter.createPlot(Dataset, Map)STYLEBC_UNCONFIRMED_CAST85
Unchecked/unconfirmed cast from net.sf.firemox.chart.datasets.Dataset to org.jfree.data.category.DefaultCategoryDataset in net.sf.firemox.chart.ChartFilter.createPlot(Dataset, Map)STYLEBC_UNCONFIRMED_CAST88
Unchecked/unconfirmed cast from net.sf.firemox.chart.datasets.Dataset to org.jfree.data.general.PieDataset in net.sf.firemox.chart.ChartFilter.createPlot(Dataset, Map)STYLEBC_UNCONFIRMED_CAST82

net.sf.firemox.chart.ChartFilter$MAreaPlot

BugCategoryDetailsLine
Should net.sf.firemox.chart.ChartFilter$MAreaPlot be a _static_ inner class?PERFORMANCESIC_INNER_SHOULD_BE_STATICNot available

net.sf.firemox.chart.ChartFilter$MBarPlot

BugCategoryDetailsLine
Should net.sf.firemox.chart.ChartFilter$MBarPlot be a _static_ inner class?PERFORMANCESIC_INNER_SHOULD_BE_STATICNot available

net.sf.firemox.chart.ChartFilter$MPiePlot

BugCategoryDetailsLine
Should net.sf.firemox.chart.ChartFilter$MPiePlot be a _static_ inner class?PERFORMANCESIC_INNER_SHOULD_BE_STATICNot available

net.sf.firemox.chart.datasets.BarDataset

BugCategoryDetailsLine
net.sf.firemox.chart.datasets.BarDataset is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.chart.datasets.CategoryDataset

BugCategoryDetailsLine
net.sf.firemox.chart.datasets.CategoryDataset is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.chart.datasets.PieDataset

BugCategoryDetailsLine
net.sf.firemox.chart.datasets.PieDataset is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.clickable.ability.Ability

BugCategoryDetailsLine
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.ability.Ability.resolveStack()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD359
Write to static field net.sf.firemox.clickable.ability.AbilityFactory.lastInstance from instance method net.sf.firemox.clickable.ability.Ability.Ability(InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD86

net.sf.firemox.clickable.ability.AbstractAbility

BugCategoryDetailsLine
net.sf.firemox.clickable.ability.AbstractAbility.actionList() may expose internal representation by returning AbstractAbility.actionListMALICIOUS_CODEEI_EXPOSE_REP68
net.sf.firemox.clickable.ability.AbstractAbility.effectList() may expose internal representation by returning AbstractAbility.effectListMALICIOUS_CODEEI_EXPOSE_REP73

net.sf.firemox.clickable.ability.Optimization

BugCategoryDetailsLine
Method net.sf.firemox.clickable.ability.Optimization.addTo(Ability, ContextEventListener, List) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES98

net.sf.firemox.clickable.ability.SystemAbility

BugCategoryDetailsLine
net.sf.firemox.clickable.ability.SystemAbility.effectList() may expose internal representation by returning SystemAbility.effectListMALICIOUS_CODEEI_EXPOSE_REP136
net.sf.firemox.clickable.ability.SystemAbility.instance isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL173

net.sf.firemox.clickable.ability.TriggeredAbilitySet$NestedAbility

BugCategoryDetailsLine
The class net.sf.firemox.clickable.ability.TriggeredAbilitySet$NestedAbility could be refactored into a _static_ inner classPERFORMANCESIC_INNER_SHOULD_BE_STATIC_NEEDS_THISNot available

net.sf.firemox.clickable.ability.UserAbility

BugCategoryDetailsLine
net.sf.firemox.clickable.ability.UserAbility.actionList() may expose internal representation by returning UserAbility.actionListMALICIOUS_CODEEI_EXPOSE_REP255
net.sf.firemox.clickable.ability.UserAbility.effectList() may expose internal representation by returning UserAbility.effectListMALICIOUS_CODEEI_EXPOSE_REP260
Bad comparison of signed byte with 128 in net.sf.firemox.clickable.ability.UserAbility.clickOn(byte[])CORRECTNESSINT_BAD_COMPARISON_WITH_SIGNED_BYTE309

net.sf.firemox.clickable.action.ChosenCostPanel

BugCategoryDetailsLine
Write to static field net.sf.firemox.clickable.action.ChosenCostPanel.ttClick from instance method net.sf.firemox.clickable.action.ChosenCostPanel.initialize()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD218

net.sf.firemox.clickable.action.JChosenAction

BugCategoryDetailsLine
Comparison of String objects using == or != in net.sf.firemox.clickable.action.JChosenAction.getToolTipText() BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ111
Write to static field net.sf.firemox.clickable.action.JChosenAction.completingImage from instance method net.sf.firemox.clickable.action.JChosenAction.JChosenAction(ActionContextWrapper)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD86
Write to static field net.sf.firemox.clickable.action.JChosenAction.uncompletedImage from instance method net.sf.firemox.clickable.action.JChosenAction.JChosenAction(ActionContextWrapper)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD84

net.sf.firemox.clickable.mana.Mana

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.clickable.mana.Mana.init(String)STYLEREC_CATCH_EXCEPTION146

net.sf.firemox.clickable.target.TargetFactory

BugCategoryDetailsLine
net.sf.firemox.clickable.target.TargetFactory.abilitiesMenu isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.TargetFactory.tooltipDirtyDataBase isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.TargetFactory.tooltipInvalidTarget isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.TargetFactory.tooltipValidTarget isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.TargetFactory.triggerTargetable isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.clickable.target.card.AbstractCard

BugCategoryDetailsLine
Field AbstractCard.ui masks field in superclass javax.swing.JComponentCORRECTNESSMF_CLASS_MASKS_FIELDNot available

net.sf.firemox.clickable.target.card.AbstractCardModel

BugCategoryDetailsLine
Write to static field net.sf.firemox.clickable.target.card.CardFactory.lastCardName from instance method net.sf.firemox.clickable.target.card.AbstractCardModel.setCardName(String)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD254

net.sf.firemox.clickable.target.card.Attachment

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.Attachment.getModifiers() may expose internal representation by returning Attachment.modifiersMALICIOUS_CODEEI_EXPOSE_REP97

net.sf.firemox.clickable.target.card.CardFactory

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.CardFactory.borderColor isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.cardHeight isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.cardWidth isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.countItem isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.exportedProperties isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.powerToughnessColor isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.ttHeader isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.clickable.target.card.CardFactory.exportedIdCardNames is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.clickable.target.card.CardFactory.exportedIdCardValues is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.clickable.target.card.CardFactory.expandItem should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.clickable.target.card.CardFactory.gatherItem should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.clickable.target.card.CardFactory.previewCard should be package protectedMALICIOUS_CODEMS_PKGPROTECT663
net.sf.firemox.clickable.target.card.CardFactory.propertyPictures should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.clickable.target.card.CardFactory.propertyPicturesHTML should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available

net.sf.firemox.clickable.target.card.CardModelImpl

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.CardModelImpl.getAbilities() may expose internal representation by returning CardModelImpl.abilitiesMALICIOUS_CODEEI_EXPOSE_REP129

net.sf.firemox.clickable.target.card.DelayedCard

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.DelayedCard.DelayedCard(TriggeredAbility, List, int[], Target, Target) may expose internal representation by storing an externally mutable object into DelayedCard.registersMALICIOUS_CODEEI_EXPOSE_REP275
Class net.sf.firemox.clickable.target.card.DelayedCard defines non-transient non-serializable instance field abilityBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.clickable.target.card.LastKnownCard

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.LastKnownCard.LastKnownCard(MCard, int, int, int, boolean, int[], Player, Player, Set, int, int) may expose internal representation by storing an externally mutable object into LastKnownCard.cachedRegistersMALICIOUS_CODEEI_EXPOSE_REP279

net.sf.firemox.clickable.target.card.MCard

BugCategoryDetailsLine
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field abilityModifierBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field colorModifierBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field idCardModifierBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field originalDatabaseBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field playableZoneModifierBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field propertyModifierBAD_PRACTICESE_BAD_FIELDNot available
Write to static field net.sf.firemox.clickable.target.TargetFactory.triggerTargetable from instance method net.sf.firemox.clickable.target.card.MCard.mouseClicked(MouseEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD797
Write to static field net.sf.firemox.clickable.target.TargetFactory.triggerTargetable from instance method net.sf.firemox.clickable.target.card.MCard.mouseClicked(MouseEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD870

net.sf.firemox.clickable.target.card.SystemCard

BugCategoryDetailsLine
Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.SystemCard.actionPerformed(ActionEvent) BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ67
net.sf.firemox.clickable.target.card.SystemCard.instance isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL45

net.sf.firemox.clickable.target.card.TriggeredCard

BugCategoryDetailsLine
net.sf.firemox.clickable.target.card.TriggeredCard.cardHeight isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINALNot available
net.sf.firemox.clickable.target.card.TriggeredCard.cardWidth isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINALNot available
Class net.sf.firemox.clickable.target.card.TriggeredCard implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available
Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field cachedImageBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field cachedScaledImageBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field contextBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field triggeredAbilityBAD_PRACTICESE_BAD_FIELDNot available
java.awt.image.BufferedImage stored into non-transient field TriggeredCard.cachedScaledImageBAD_PRACTICESE_BAD_FIELD_STORE225

net.sf.firemox.clickable.target.card.TriggeredCardChoice

BugCategoryDetailsLine
Class net.sf.firemox.clickable.target.card.TriggeredCardChoice implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available
Write to static field net.sf.firemox.clickable.target.card.TriggeredCardChoice.waitingTriggered from instance method net.sf.firemox.clickable.target.card.TriggeredCardChoice.newSpell()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD88
TriggeredCardChoice.contexts not initialized in constructorSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORNot available
TriggeredCardChoice.either not initialized in constructorSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORNot available

net.sf.firemox.clickable.target.card.VirtualCard

BugCategoryDetailsLine
Random object created and used only once in net.sf.firemox.clickable.target.card.VirtualCard.updateSizes()BAD_PRACTICEDMI_RANDOM_USED_ONLY_ONCE649
Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.VirtualCard.getTooltipString() BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ554
Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics) BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ276
int division result cast to double or float in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics)STYLEICAST_IDIV_CAST_TO_DOUBLE279
int division result cast to double or float in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics)STYLEICAST_IDIV_CAST_TO_DOUBLE284
Class net.sf.firemox.clickable.target.card.VirtualCard defines non-transient non-serializable instance field cardInfoFilterBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.clickable.target.player.Opponent

BugCategoryDetailsLine
Opponent.nickName not initialized in constructorSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORNot available

net.sf.firemox.clickable.target.player.Player

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE650
Comparison of String objects using == or != in net.sf.firemox.clickable.target.player.Player.paint(Graphics) BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ776
net.sf.firemox.clickable.target.player.Player.SETTINGS should be package protectedMALICIOUS_CODEMS_PKGPROTECT836
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.target.player.Player.setActivePlayer()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD395
Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.clickable.target.player.Player.setHandedPlayer()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD408
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.target.player.Player.waitTriggeredBufferChoiceRec()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD500

net.sf.firemox.database.DatabaseCard

BugCategoryDetailsLine
net.sf.firemox.database.DatabaseCard.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL51
net.sf.firemox.database.DatabaseCard.getPictureProxies() may expose internal representation by returning DatabaseCard.pictureProxiesMALICIOUS_CODEEI_EXPOSE_REP145
net.sf.firemox.database.DatabaseCard.setPictureProxies(Proxy[]) may expose internal representation by storing an externally mutable object into DatabaseCard.pictureProxiesMALICIOUS_CODEEI_EXPOSE_REP2501
Exception is caught when Exception is not thrown in net.sf.firemox.database.DatabaseCard.getPictureStream()STYLEREC_CATCH_EXCEPTION278

net.sf.firemox.database.DatabaseFactory

BugCategoryDetailsLine
net.sf.firemox.database.DatabaseFactory.backImage isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.database.DatabaseFactory.damageImage isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.database.DatabaseFactory.damageScaledImage isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.database.DatabaseFactory.propertiesCacheConfig isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.database.DatabaseFactory.scaledBackImage isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.database.DatabaseFactory.dataProxies is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.database.DatabaseFactory.pictureProxies is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.database.DatabaseFactory.blankImage isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINALNot available
Redundant nullcheck of res, which is known to be non-null in net.sf.firemox.database.DatabaseFactory.getDatabase(String, CardModel, Map)STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE175
Exception is caught when Exception is not thrown in net.sf.firemox.database.DatabaseFactory.init(InputStream)STYLEREC_CATCH_EXCEPTION415

net.sf.firemox.database.Proxy

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE144
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE339
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE355
net.sf.firemox.database.Proxy.getStringFromStream(CardModel, Map) may fail to close streamBAD_PRACTICEOS_OPEN_STREAM246
Exception is caught when Exception is not thrown in net.sf.firemox.database.Proxy.getLocalPictures(CardModel, Map)STYLEREC_CATCH_EXCEPTION408
Exception is caught when Exception is not thrown in net.sf.firemox.database.Proxy.getRemotePictures(CardModel, Map)STYLEREC_CATCH_EXCEPTION382

net.sf.firemox.database.UrlTokenizer

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE51

net.sf.firemox.database.XmlDeckTranslator

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.database.XmlDeckTranslator.convert(String)STYLEREC_CATCH_EXCEPTION71
Write to static field net.sf.firemox.database.XmlDeckTranslator.config from instance method net.sf.firemox.database.XmlDeckTranslator.XmlDeckTranslator()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD48

net.sf.firemox.database.data.CollectionData

BugCategoryDetailsLine
net.sf.firemox.database.data.CollectionData.CollectionData(PropertyConfig, String[]) may expose internal representation by storing an externally mutable object into CollectionData.valuesMALICIOUS_CODEEI_EXPOSE_REP253

net.sf.firemox.database.propertyconfig.PropertyConfig

BugCategoryDetailsLine
net.sf.firemox.database.propertyconfig.PropertyConfig defines hashCode and uses Object.equals()BAD_PRACTICEHE_HASHCODE_USE_OBJECT_EQUALS88

net.sf.firemox.database.propertyconfig.PropertyProxyConfig

BugCategoryDetailsLine
net.sf.firemox.database.propertyconfig.PropertyProxyConfig.values isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL60
Write to static field net.sf.firemox.expression.StringMethod.testedString from instance method net.sf.firemox.database.propertyconfig.PropertyProxyConfig.parseProperty(String, String, Proxy)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD95

net.sf.firemox.deckbuilder.BuildBook

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE202
net.sf.firemox.deckbuilder.BuildBook.build() may fail to close streamBAD_PRACTICEOS_OPEN_STREAM104
net.sf.firemox.deckbuilder.BuildBook.getImage(String) may fail to close stream on exceptionBAD_PRACTICEOS_OPEN_STREAM_EXCEPTION_PATH232

net.sf.firemox.deckbuilder.CardLoader

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.deckbuilder.CardLoader.CardLoader(TimerGlassPane)STYLEREC_CATCH_EXCEPTION74

net.sf.firemox.deckbuilder.CardView

BugCategoryDetailsLine
Class net.sf.firemox.deckbuilder.CardView defines non-transient non-serializable instance field databaseCardBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.deckbuilder.ConstraintsChecker

BugCategoryDetailsLine
Class net.sf.firemox.deckbuilder.ConstraintsChecker defines non-transient non-serializable instance field deckBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.deckbuilder.Deck

BugCategoryDetailsLine
net.sf.firemox.deckbuilder.Deck.currentDeck isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.deckbuilder.DeckConstraint

BugCategoryDetailsLine
net.sf.firemox.deckbuilder.DeckConstraint defines compareTo(DeckConstraint) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS123-129
Redundant nullcheck of net.sf.firemox.test.DeckCounter.lastRanCard which is known to be null in net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck)STYLERCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE102
Write to static field net.sf.firemox.deckbuilder.Deck.currentDeck from instance method net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD97
Write to static field net.sf.firemox.test.DeckCounter.lastRanCard from instance method net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD98

net.sf.firemox.deckbuilder.DeckConstraints

BugCategoryDetailsLine
net.sf.firemox.deckbuilder.DeckConstraints.MASTER isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.deckbuilder.MdbLoader

BugCategoryDetailsLine
net.sf.firemox.deckbuilder.MdbLoader.loadTBSSettings(String) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT491
net.sf.firemox.deckbuilder.MdbLoader.saveTBSSettings(String) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT452
net.sf.firemox.deckbuilder.MdbLoader.backPicture isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL104
net.sf.firemox.deckbuilder.MdbLoader.coloredManaBigURL isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.coloredManaSmlURL isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.colorlessBigURL isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.colorlessURL isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.damagePicture isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL109
net.sf.firemox.deckbuilder.MdbLoader.unknownSmlMana isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.unknownSmlManaHtml isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.deckbuilder.MdbLoader.coloredBigManas is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.deckbuilder.MdbLoader.coloredSmlManas is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.deckbuilder.MdbLoader.coloredSmlManasHtml is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.deckbuilder.MdbLoader.colorlessSmlManas is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available
net.sf.firemox.deckbuilder.MdbLoader.colorlessSmlManasHtml is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available

net.sf.firemox.event.MEventListener

BugCategoryDetailsLine
net.sf.firemox.event.MEventListener.CAN_I_CAST_ABILITIES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY311

net.sf.firemox.event.TriggeredEvent

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE133
net.sf.firemox.event.TriggeredEvent.replacement should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available

net.sf.firemox.event.UncaughtException

BugCategoryDetailsLine
Class net.sf.firemox.event.UncaughtException is not derived from an Exception, even though it is named as suchBAD_PRACTICENM_CLASS_NOT_EXCEPTIONNot available

net.sf.firemox.event.phase.BeforePhase

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.event.MEventListener to net.sf.firemox.event.phase.PhaseEvent in net.sf.firemox.event.phase.BeforePhase.appendOr(MEventListener)STYLEBC_UNCONFIRMED_CAST160

net.sf.firemox.event.phase.BeginningPhase

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.event.MEventListener to net.sf.firemox.event.phase.PhaseEvent in net.sf.firemox.event.phase.BeginningPhase.appendOr(MEventListener)STYLEBC_UNCONFIRMED_CAST131

net.sf.firemox.event.phase.EndOfPhase

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.event.MEventListener to net.sf.firemox.event.phase.PhaseEvent in net.sf.firemox.event.phase.EndOfPhase.appendOr(MEventListener)STYLEBC_UNCONFIRMED_CAST162

net.sf.firemox.event.phase.PhaseFilter

BugCategoryDetailsLine
Write to static field net.sf.firemox.stack.EventManager.nextPhaseIndex from instance method net.sf.firemox.event.phase.PhaseFilter.setNextPhase(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD69
Write to static field net.sf.firemox.stack.EventManager.nextPhaseIndex from instance method net.sf.firemox.event.phase.PhaseFilter.setNextPhase(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD74

net.sf.firemox.expression.Counter

BugCategoryDetailsLine
net.sf.firemox.expression.Counter.superTested isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL144

net.sf.firemox.expression.DeckCounter

BugCategoryDetailsLine
net.sf.firemox.expression.DeckCounter.lastRanTest should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
Write to static field net.sf.firemox.expression.DeckCounter.lastRanTest from instance method net.sf.firemox.expression.DeckCounter.getValue(Ability, Target, ContextEventListener)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD76

net.sf.firemox.expression.ObjectValue

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.expression.ObjectValue.ObjectValue(InputStream)STYLEREC_CATCH_EXCEPTION76
Exception is caught when Exception is not thrown in net.sf.firemox.expression.ObjectValue.getObject(Ability, Target, ContextEventListener)STYLEREC_CATCH_EXCEPTION91

net.sf.firemox.expression.StringMethod

BugCategoryDetailsLine
net.sf.firemox.expression.StringMethod.testedString isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.mail.MailUtils

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.mail.MailUtils.sendEmail(String, String, String[], String, String, List, Header[], String, String)STYLEREC_CATCH_EXCEPTION177

net.sf.firemox.management.MonitoredCheckContent

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.management.MonitoredCheckContent.run()STYLEREC_CATCH_EXCEPTION239

net.sf.firemox.modifier.AbilityModifier

BugCategoryDetailsLine
net.sf.firemox.modifier.AbilityModifier.AbilityModifier(ModifierContext, Operation, Ability[]) may expose internal representation by storing an externally mutable object into AbilityModifier.abilitiesToAddMALICIOUS_CODEEI_EXPOSE_REP249

net.sf.firemox.modifier.Modifier

BugCategoryDetailsLine
Redundant nullcheck of net.sf.firemox.modifier.Modifier.next, which is known to be non-null in net.sf.firemox.modifier.Modifier.addModifier(Modifier)STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE129

net.sf.firemox.modifier.model.AbilityModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.AbilityModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL40

net.sf.firemox.modifier.model.AdditionalCostModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.AdditionalCostModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL38

net.sf.firemox.modifier.model.ColorModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.ColorModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL47
Method net.sf.firemox.modifier.model.ColorModifierModel.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION106

net.sf.firemox.modifier.model.ControllerModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.ControllerModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL36

net.sf.firemox.modifier.model.IdCardModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.IdCardModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL44

net.sf.firemox.modifier.model.ObjectAbilityModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.ObjectAbilityModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL35

net.sf.firemox.modifier.model.PlayableZoneModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.PlayableZoneModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL37

net.sf.firemox.modifier.model.PropertyModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.PropertyModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL43

net.sf.firemox.modifier.model.RegisterIndirectionModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.RegisterIndirectionModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL44

net.sf.firemox.modifier.model.RegisterModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.RegisterModifierMode