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.RegisterModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL45

net.sf.firemox.modifier.model.StaticModifierModel

BugCategoryDetailsLine
net.sf.firemox.modifier.model.StaticModifierModel.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL47

net.sf.firemox.network.Client

BugCategoryDetailsLine
Write to static field net.sf.firemox.action.PayMana.useMana from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD204
Write to static field net.sf.firemox.action.WaitActivatedChoice.opponentResponse from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD207
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD88
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD285
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD231
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD238
Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD232
Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Client.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD239

net.sf.firemox.network.ConnectionManager

BugCategoryDetailsLine
net.sf.firemox.network.ConnectionManager.client isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL143
net.sf.firemox.network.ConnectionManager.server isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL138
Exception is caught when Exception is not thrown in net.sf.firemox.network.ConnectionManager.closeConnexions()STYLEREC_CATCH_EXCEPTION77

net.sf.firemox.network.MBigPipe

BugCategoryDetailsLine
net.sf.firemox.network.MBigPipe.instance should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
Write to static field net.sf.firemox.network.MBigPipe.instance from instance method net.sf.firemox.network.MBigPipe.MBigPipe(InputStream, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD49

net.sf.firemox.network.MMiniPipe

BugCategoryDetailsLine
Using notify rather than notifyAll in net.sf.firemox.network.MMiniPipe.release()MT_CORRECTNESSNO_NOTIFY_NOT_NOTIFYALL90

net.sf.firemox.network.MSocketListener

BugCategoryDetailsLine
Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.readReplacementAnswer()MT_CORRECTNESSNO_NOTIFY_NOT_NOTIFYALL186
Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.run()MT_CORRECTNESSNO_NOTIFY_NOT_NOTIFYALL155
Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.stack(CoreMessage)MT_CORRECTNESSNO_NOTIFY_NOT_NOTIFYALL216
Unconditional wait in net.sf.firemox.network.MSocketListener.readReplacementAnswer()MT_CORRECTNESSUW_UNCOND_WAIT178

net.sf.firemox.network.NetworkActor

BugCategoryDetailsLine
net.sf.firemox.network.NetworkActor.closeConnexion() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE91
net.sf.firemox.network.NetworkActor.cancelling isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.closeConnexion()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD82
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.NetworkActor(Deck, char[])STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD61
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.readAndValidateOpponentDeck()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD149

net.sf.firemox.network.Server

BugCategoryDetailsLine
net.sf.firemox.network.Server.closeConnexion() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE294
Write to static field net.sf.firemox.action.PayMana.useMana from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD189
Write to static field net.sf.firemox.action.WaitActivatedChoice.opponentResponse from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD193
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD275
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD221
Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD228
Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD222
Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Server.run()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD229

net.sf.firemox.network.message.CoreMessage

BugCategoryDetailsLine
net.sf.firemox.network.message.CoreMessage.getData() may expose internal representation by returning CoreMessage.dataMALICIOUS_CODEEI_EXPOSE_REP69
net.sf.firemox.network.message.CoreMessage.CoreMessage(CoreMessageType, byte[]) may expose internal representation by storing an externally mutable object into CoreMessage.dataMALICIOUS_CODEEI_EXPOSE_REP260
net.sf.firemox.network.message.CoreMessage.CoreMessage(InputStream) ignores result of java.io.InputStream.read(byte[])BAD_PRACTICERR_NOT_CHECKED47

net.sf.firemox.stack.ActionManager

BugCategoryDetailsLine
net.sf.firemox.stack.ActionManager.actionList() may expose internal representation by returning ActionManager.actionListMALICIOUS_CODEEI_EXPOSE_REP189
net.sf.firemox.stack.ActionManager.actionList() may expose internal representation by returning ActionManager.effectListMALICIOUS_CODEEI_EXPOSE_REP187
net.sf.firemox.stack.ActionManager.getAllActionContexts() may expose internal representation by returning ActionManager.actionsContextsWrapperMALICIOUS_CODEEI_EXPOSE_REP695
net.sf.firemox.stack.ActionManager.getRequiredMana() may expose internal representation by returning ActionManager.requiredManaMALICIOUS_CODEEI_EXPOSE_REP1106
net.sf.firemox.stack.ActionManager.getTotalActionContexts() may expose internal representation by returning ActionManager.actionsContextsWrapperMALICIOUS_CODEEI_EXPOSE_REP718
net.sf.firemox.stack.ActionManager.getTotalActionContexts() may expose internal representation by returning ActionManager.validatedActionsContextsWrapperMALICIOUS_CODEEI_EXPOSE_REP715
Redundant nullcheck of net.sf.firemox.stack.StackManager.triggered which is known to be null in net.sf.firemox.stack.ActionManager.playNextAction()STYLERCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE488
Write to static field net.sf.firemox.stack.StackManager.gameLostProceed from instance method net.sf.firemox.stack.ActionManager.playNextAction()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD434

net.sf.firemox.stack.EventManager

BugCategoryDetailsLine
net.sf.firemox.stack.EventManager.currentIdPhase isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL562
net.sf.firemox.stack.EventManager.nextCurrentPlayer isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.EventManager.nextPhaseIndex isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.EventManager.parsingEndPhaseEvent isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.EventManager.phaseIndex isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.EventManager.turnStructure is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAYNot available

net.sf.firemox.stack.MPhase

BugCategoryDetailsLine
net.sf.firemox.stack.MPhase.phases is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY576
net.sf.firemox.stack.MPhase.optionsMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.stack.MPhase.triggerPhase should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
Class net.sf.firemox.stack.MPhase defines non-transient non-serializable instance field phaseTypeBAD_PRACTICESE_BAD_FIELDNot available
Write to static field net.sf.firemox.stack.MPhase.breakpointImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD161
Write to static field net.sf.firemox.stack.MPhase.skipAllImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD162
Write to static field net.sf.firemox.stack.MPhase.skipAllMediumImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD166
Write to static field net.sf.firemox.stack.MPhase.skipAllMediumOnceImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD167
Write to static field net.sf.firemox.stack.MPhase.skipAllOnceImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD163
Write to static field net.sf.firemox.stack.MPhase.skipAllOnceVeryImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD165
Write to static field net.sf.firemox.stack.MPhase.skipAllVeryImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD164
Write to static field net.sf.firemox.stack.MPhase.triggerPhase from instance method net.sf.firemox.stack.MPhase.mouseClicked(MouseEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD446

net.sf.firemox.stack.StackManager

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.target.card.AbstractCard to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.stack.StackManager.abortion(AbstractCard, Ability)STYLEBC_UNCONFIRMED_CAST565
Unchecked/unconfirmed cast from net.sf.firemox.clickable.ability.Ability to net.sf.firemox.clickable.ability.TriggeredAbility in net.sf.firemox.stack.StackManager.getSaved(Ability)STYLEBC_UNCONFIRMED_CAST920
net.sf.firemox.stack.StackManager.abilityID isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL1063
net.sf.firemox.stack.StackManager.currentAbility isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.intList isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.spellController isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.targetOptions isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.tokenCard isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.triggered isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.stack.StackManager.PLAYERS is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY1094
net.sf.firemox.stack.StackManager.registers is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY1025
net.sf.firemox.stack.StackManager.canBeAborted should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.stack.StackManager.previousPlace should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.stack.StackManager.zoneAbortion should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.stack.StackManager.noReplayToken isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL1146
Write to static field net.sf.firemox.stack.StackManager.aborted from instance method net.sf.firemox.stack.StackManager.abortion(AbstractCard, Ability)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD521
Write to static field net.sf.firemox.stack.StackManager.gameLostProceed from instance method net.sf.firemox.stack.StackManager.finishSpell()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD412
Write to static field net.sf.firemox.stack.StackManager.actionManager from instance method net.sf.firemox.stack.StackManager.init(InputStream, int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD161
Write to static field net.sf.firemox.stack.StackManager.zoneAbortion from instance method net.sf.firemox.stack.StackManager.init(InputStream, int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD151
Write to static field net.sf.firemox.stack.StackManager.actionManager from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD259
Write to static field net.sf.firemox.stack.StackManager.canBeAborted from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD252
Write to static field net.sf.firemox.stack.StackManager.currentAbility from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD256
Write to static field net.sf.firemox.stack.StackManager.intList from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD249
Write to static field net.sf.firemox.stack.StackManager.registers from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD247
Write to static field net.sf.firemox.stack.StackManager.spellController from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD246
Write to static field net.sf.firemox.stack.StackManager.targetOptions from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD250
Write to static field net.sf.firemox.stack.StackManager.triggered from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD251

net.sf.firemox.test.DeckCounter

BugCategoryDetailsLine
net.sf.firemox.test.DeckCounter.lastRanCard isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.test.DeckCounter.lastRanInstance isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Write to static field net.sf.firemox.test.DeckCounter.lastRanCard from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD90
Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD99
Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD107
Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD115

net.sf.firemox.test.PlayableAbility

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.ability.Ability to net.sf.firemox.clickable.ability.ActivatedAbility in net.sf.firemox.test.PlayableAbility.test(Ability, Target)STYLEBC_UNCONFIRMED_CAST63

net.sf.firemox.test.TestOn

BugCategoryDetailsLine
Unchecked/unconfirmed cast from net.sf.firemox.clickable.ability.Ability to net.sf.firemox.clickable.ability.TriggeredAbility in net.sf.firemox.test.TestOn.getTargetable(Ability, MCard, ContextEventListener, Target)STYLEBC_UNCONFIRMED_CAST550
Method net.sf.firemox.test.TestOn.getTargetable(Ability, MCard, ContextEventListener, Target) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES546
Method net.sf.firemox.test.TestOn.getTargetable(Ability, MCard, ContextEventListener, Target) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES571
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE828
Class net.sf.firemox.test.TestOn implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available

net.sf.firemox.token.IdAbilities

BugCategoryDetailsLine
net.sf.firemox.token.IdAbilities.ABILITIES_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY48
net.sf.firemox.token.IdAbilities.ABILITIES_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY53

net.sf.firemox.token.IdCardColors

BugCategoryDetailsLine
net.sf.firemox.token.IdCardColors.CARD_COLOR is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY37
net.sf.firemox.token.IdCardColors.CARD_COLOR_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY31
net.sf.firemox.token.IdCardColors.CARD_COLOR_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY43

net.sf.firemox.token.IdCommonToken

BugCategoryDetailsLine
net.sf.firemox.token.IdCommonToken.COLOR_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY81

net.sf.firemox.token.IdConst

BugCategoryDetailsLine
net.sf.firemox.token.IdConst.VALUES_NAME is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY162
net.sf.firemox.token.IdConst.EMPTY_CODE is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY152
net.sf.firemox.token.IdConst.VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY168

net.sf.firemox.token.IdPositions

BugCategoryDetailsLine
net.sf.firemox.token.IdPositions.POSITION_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY45
net.sf.firemox.token.IdPositions.POSITION_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY50

net.sf.firemox.token.IdTargets

BugCategoryDetailsLine
net.sf.firemox.token.IdTargets.MODE_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY116
net.sf.firemox.token.IdTargets.MODE_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY123

net.sf.firemox.token.IdTokens

BugCategoryDetailsLine
net.sf.firemox.token.IdTokens.REGISTER_INDEX_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY158
net.sf.firemox.token.IdTokens.REGISTER_INDEX_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY163

net.sf.firemox.token.IdZones

BugCategoryDetailsLine
net.sf.firemox.token.IdZones.ZONE_NAMES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY106
net.sf.firemox.token.IdZones.ZONE_VALUES is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY113

net.sf.firemox.token.MCommonVars

BugCategoryDetailsLine
net.sf.firemox.token.MCommonVars.autoMana isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.token.MCommonVars.autoStack isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.token.MCommonVars.registers is a mutable arrayMALICIOUS_CODEMS_MUTABLE_ARRAY32

net.sf.firemox.token.Register

BugCategoryDetailsLine
net.sf.firemox.token.Register.REGISTER_NAMES should be package protectedMALICIOUS_CODEMS_PKGPROTECT225
net.sf.firemox.token.Register.REGISTER_VALUES should be package protectedMALICIOUS_CODEMS_PKGPROTECT234
Write to static field net.sf.firemox.xml.XmlTools.testCanBePreempted from instance method net.sf.firemox.token.Register.serialize(OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD123

net.sf.firemox.token.TrueFalseAuto

BugCategoryDetailsLine
Method net.sf.firemox.token.TrueFalseAuto.getValue() uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES103

net.sf.firemox.token.Visibility

BugCategoryDetailsLine
Method net.sf.firemox.token.Visibility.decreaseFor(Player, VisibilityChange) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES154
Method net.sf.firemox.token.Visibility.increaseFor(Player, VisibilityChange) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES124

net.sf.firemox.tools.FileFilterPlus

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE145
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE185
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE164

net.sf.firemox.tools.HistoComboboxModel

BugCategoryDetailsLine
net.sf.firemox.tools.HistoComboboxModel is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.tools.IntegerList

BugCategoryDetailsLine
net.sf.firemox.tools.IntegerList is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.tools.JavaVersion

BugCategoryDetailsLine
Equals method for net.sf.firemox.tools.JavaVersion assumes the argument is of type JavaVersionBAD_PRACTICEBC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS172
Method net.sf.firemox.tools.JavaVersion.toString() concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION192

net.sf.firemox.tools.MCardCompare

BugCategoryDetailsLine
net.sf.firemox.tools.MCardCompare.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL40
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE156
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE173
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE169
net.sf.firemox.tools.MCardCompare.equals(Object) does not check for null argumentBAD_PRACTICENP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT164
net.sf.firemox.tools.MCardCompare implements Comparator but not SerializableBAD_PRACTICESE_COMPARATOR_SHOULD_BE_SERIALIZABLENot available

net.sf.firemox.tools.MToolKit

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE1132
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE1301
net.sf.firemox.tools.MToolKit.defaultFont isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.tools.MToolKit.fileChooser isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.tools.MToolKit.mdbFile isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.tools.MToolKit.tbsName isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.tools.MToolKit.translator isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL1192
net.sf.firemox.tools.MToolKit.random isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL1007
Method net.sf.firemox.tools.MToolKit.getHtmlMana(int, int) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION857

net.sf.firemox.tools.Picture

BugCategoryDetailsLine
Unchecked/unconfirmed cast from java.awt.Image to sun.awt.image.ToolkitImage in net.sf.firemox.tools.Picture.getScaledImage(Image)STYLEBC_UNCONFIRMED_CAST382
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE236
Comparison of String parameter using == or != in net.sf.firemox.tools.Picture.setImage(Image, String) BAD_PRACTICEES_COMPARING_PARAMETER_STRING_WITH_EQ102
Class net.sf.firemox.tools.Picture defines non-transient non-serializable instance field cardImageBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.tools.RevertedArrayList

BugCategoryDetailsLine
Class net.sf.firemox.tools.RevertedArrayList implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available
net.sf.firemox.tools.RevertedArrayList is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.tools.RollingFileAppender

BugCategoryDetailsLine
Random object created and used only once in net.sf.firemox.tools.RollingFileAppender.subAppend(LoggingEvent)BAD_PRACTICEDMI_RANDOM_USED_ONLY_ONCE101

net.sf.firemox.tools.TimerTarget

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.tools.TimerTarget.TimerTarget(TimerGlassPane)STYLEREC_CATCH_EXCEPTION64

net.sf.firemox.tools.VersionChecker

BugCategoryDetailsLine
net.sf.firemox.tools.VersionChecker.checkVersion(Component) may fail to close streamBAD_PRACTICEOS_OPEN_STREAM58

net.sf.firemox.ui.HireListener

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

net.sf.firemox.ui.MCardTableModel

BugCategoryDetailsLine
net.sf.firemox.ui.MCardTableModel is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.ui.MListModel

BugCategoryDetailsLine
Call to equals() comparing different types in net.sf.firemox.ui.MListModel.indexOf(String)CORRECTNESSEC_UNRELATED_TYPES165
net.sf.firemox.ui.MListModel is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.ui.MagicUIComponents

BugCategoryDetailsLine
net.sf.firemox.ui.MagicUIComponents.initComponents() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE145
net.sf.firemox.ui.MagicUIComponents.backgroundBtn isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.chatHistoryText isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.chosenCostPanel isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.databasePanel isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.logListing isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.magicForm isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.playerTabbedPanel isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.sendButton isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.skipButton isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.skipMenu isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.targetTimer isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.timer isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.waitingLabel isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.MagicUIComponents.autoManaMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.autoPlayMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.cardBorderMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.chatPanel should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.dismissdelayMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.frameDecorated should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.initialdelayMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.lookAndFeelName should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.moreThemeMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.previewPanel should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.reverseArtCheck should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.reverseSideCheck should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.sendTxt should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.soundMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.splash should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.themeMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot available
net.sf.firemox.ui.MagicUIComponents.speparateAvatar isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL813
Class net.sf.firemox.ui.MagicUIComponents implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available
Write to static field net.sf.firemox.ui.MagicUIComponents.magicForm from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD121
Write to static field net.sf.firemox.ui.MagicUIComponents.targetTimer from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD132
Write to static field net.sf.firemox.ui.MagicUIComponents.timer from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD133
Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD148
Write to static field net.sf.firemox.ui.MagicUIComponents.autoManaMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD508
Write to static field net.sf.firemox.ui.MagicUIComponents.autoPlayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD517
Write to static field net.sf.firemox.ui.MagicUIComponents.backgroundBtn from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD165
Write to static field net.sf.firemox.ui.MagicUIComponents.cardBorderMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD394
Write to static field net.sf.firemox.ui.MagicUIComponents.chatHistoryText from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD223
Write to static field net.sf.firemox.ui.MagicUIComponents.chatPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD219
Write to static field net.sf.firemox.ui.MagicUIComponents.chosenCostPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD182
Write to static field net.sf.firemox.ui.MagicUIComponents.databasePanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD183
Write to static field net.sf.firemox.ui.MagicUIComponents.dismissdelayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD447
Write to static field net.sf.firemox.ui.MagicUIComponents.initialdelayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD445
Write to static field net.sf.firemox.ui.MagicUIComponents.languageMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD461
Write to static field net.sf.firemox.ui.MagicUIComponents.logListing from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD284
Write to static field net.sf.firemox.ui.MagicUIComponents.moreThemeMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD149
Write to static field net.sf.firemox.ui.MagicUIComponents.playerTabbedPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD175
Write to static field net.sf.firemox.ui.MagicUIComponents.previewPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD180
Write to static field net.sf.firemox.ui.MagicUIComponents.reverseArtCheck from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD371
Write to static field net.sf.firemox.ui.MagicUIComponents.reverseSideCheck from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD378
Write to static field net.sf.firemox.ui.MagicUIComponents.sendButton from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD266
Write to static field net.sf.firemox.ui.MagicUIComponents.sendTxt from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD262
Write to static field net.sf.firemox.ui.MagicUIComponents.skipButton from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD345
Write to static field net.sf.firemox.ui.MagicUIComponents.skipMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD350
Write to static field net.sf.firemox.ui.MagicUIComponents.soundMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD427
Write to static field net.sf.firemox.ui.MagicUIComponents.themeMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD454
Write to static field net.sf.firemox.ui.MagicUIComponents.waitingLabel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD152

net.sf.firemox.ui.MagicUIComponents$1

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

net.sf.firemox.ui.MdbListener

BugCategoryDetailsLine
net.sf.firemox.ui.MdbListener.actionPerformed(ActionEvent) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT125

net.sf.firemox.ui.SkinLF

BugCategoryDetailsLine
Comparison of String parameter using == or != in net.sf.firemox.ui.SkinLF.installLookAndFeel(String, Object) BAD_PRACTICEES_COMPARING_PARAMETER_STRING_WITH_EQ138

net.sf.firemox.ui.TargetGlassPane

BugCategoryDetailsLine
Class net.sf.firemox.ui.TargetGlassPane defines non-transient non-serializable instance field compositeBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.ui.TargetGlassPane defines non-transient non-serializable instance field stackContextBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.ui.TimerGlassPane

BugCategoryDetailsLine
net.sf.firemox.ui.TimerGlassPane.updatePicture(Image, Image[]) may expose internal representation by storing an externally mutable object into TimerGlassPane.gifPictureMALICIOUS_CODEEI_EXPOSE_REP281
net.sf.firemox.ui.TimerGlassPane.updatePicture(Image, Image[]) may expose internal representation by storing an externally mutable object into TimerGlassPane.gifPictureMALICIOUS_CODEEI_EXPOSE_REP289
Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field compositeBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field gifPictureBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field timerPictureBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.ui.ToolKit

BugCategoryDetailsLine
Dead store to type in net.sf.firemox.ui.ToolKit.getScaledInstance(BufferedImage, int, int, int, Color)STYLEDLS_DEAD_LOCAL_STORE90

net.sf.firemox.ui.TooltipFilter

BugCategoryDetailsLine
net.sf.firemox.ui.TooltipFilter.fullInstance isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL70

net.sf.firemox.ui.component.ChatArea

BugCategoryDetailsLine
net.sf.firemox.ui.component.ChatArea.mouseClicked(MouseEvent) might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE179
Questionable use of non-short-circuit logic in net.sf.firemox.ui.component.ChatArea.mouseClicked(MouseEvent)BAD_PRACTICENS_NON_SHORT_CIRCUIT175
Questionable use of non-short-circuit logic in net.sf.firemox.ui.component.ChatArea.mouseMoved(MouseEvent)BAD_PRACTICENS_NON_SHORT_CIRCUIT193

net.sf.firemox.ui.component.EditorPane

BugCategoryDetailsLine
Inconsistent synchronization of net.sf.firemox.ui.component.EditorPane.contact; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC55
Inconsistent synchronization of net.sf.firemox.ui.component.EditorPane.you; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC54

net.sf.firemox.ui.component.JPrompt

BugCategoryDetailsLine
net.sf.firemox.ui.component.JPrompt.value should be package protectedMALICIOUS_CODEMS_PKGPROTECT145
Write to static field net.sf.firemox.ui.component.JPrompt.value from instance method net.sf.firemox.ui.component.JPrompt.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD78

net.sf.firemox.ui.component.LoaderConsole

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.ui.component.LoaderConsole.setVisible(boolean)STYLEREC_CATCH_EXCEPTION116
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.ui.component.LoaderConsole.processWindowEvent(WindowEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD127
Write to static field net.sf.firemox.ui.component.LoaderConsole.instance from instance method net.sf.firemox.ui.component.LoaderConsole.setVisible(boolean)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD114
Write to static field net.sf.firemox.ui.component.LoaderConsole.loadingPorgressbar from instance method net.sf.firemox.ui.component.LoaderConsole.LoaderConsole()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD68

net.sf.firemox.ui.component.LoaderConsole$1

BugCategoryDetailsLine
Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.ui.component.LoaderConsole$1.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD75

net.sf.firemox.ui.component.MessageButton

BugCategoryDetailsLine
Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field abilityBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field contextBAD_PRACTICESE_BAD_FIELDNot available
Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field actionBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.ui.component.MiniCard

BugCategoryDetailsLine
net.sf.firemox.ui.component.MiniCard is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.ui.component.TableTop

BugCategoryDetailsLine
Dead store to additionalZones in net.sf.firemox.ui.component.TableTop.initTbs(Player)STYLEDLS_DEAD_LOCAL_STORE196
Dead store to delayedSPanel in net.sf.firemox.ui.component.TableTop.initTbs(Player)STYLEDLS_DEAD_LOCAL_STORE197
Write to static field net.sf.firemox.ui.component.TableTop.instance from instance method net.sf.firemox.ui.component.TableTop.TableTop(JTabbedPane, JTabbedPane)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD79

net.sf.firemox.ui.component.ThreadSafeJList

BugCategoryDetailsLine
net.sf.firemox.ui.component.ThreadSafeJList.getPreferredSize() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE48

net.sf.firemox.ui.component.task.LinkAction

BugCategoryDetailsLine
LinkAction.url not initialized in constructorSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORNot available

net.sf.firemox.ui.i18n.LanguageManager

BugCategoryDetailsLine
Comparison of String objects using == or != in net.sf.firemox.ui.i18n.LanguageManager.getSecondaryBundle(String) BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ166
net.sf.firemox.ui.i18n.LanguageManager.languages isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.ui.layout.AttachmentLayout

BugCategoryDetailsLine
Unchecked/unconfirmed cast from java.awt.Container to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.ui.layout.AttachmentLayout.layoutContainer(Container)STYLEBC_UNCONFIRMED_CAST86
Unchecked/unconfirmed cast from java.awt.Container to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.ui.layout.AttachmentLayout.preferredLayoutSize(Container)STYLEBC_UNCONFIRMED_CAST65
Write to static field net.sf.firemox.ui.layout.AttachmentLayout.attachmentDy from instance method net.sf.firemox.ui.layout.AttachmentLayout.AttachmentLayout()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD59

net.sf.firemox.ui.layout.BorderLayout2

BugCategoryDetailsLine
net.sf.firemox.ui.layout.BorderLayout2 is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.ui.layout.FlowLayoutVertical2

BugCategoryDetailsLine
Class net.sf.firemox.ui.layout.FlowLayoutVertical2 implements same interface as superclassSTYLERI_REDUNDANT_INTERFACESNot available

net.sf.firemox.ui.wizard.Arrange

BugCategoryDetailsLine
net.sf.firemox.ui.wizard.Arrange.Arrange(int, List, int[], Player) may expose internal representation by storing an externally mutable object into Arrange.orderMALICIOUS_CODEEI_EXPOSE_REP266

net.sf.firemox.ui.wizard.Bug

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Bug.actionPerformed(ActionEvent)STYLEREC_CATCH_EXCEPTION208
Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Bug.Bug()STYLEREC_CATCH_EXCEPTION155
Class net.sf.firemox.ui.wizard.Bug defines non-transient non-serializable instance field screenShotBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.ui.wizard.Choice

BugCategoryDetailsLine
Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD132
Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD139
Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD144
Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.Choice(Ability, boolean, List)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD77
Write to static field net.sf.firemox.ui.wizard.Choice.optionAnswer from instance method net.sf.firemox.ui.wizard.Choice.Choice(Ability, boolean, List)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD78

net.sf.firemox.ui.wizard.Client

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Client.actionPerformed(ActionEvent)STYLEREC_CATCH_EXCEPTION113
Write to static field net.sf.firemox.network.ConnectionManager.client from instance method net.sf.firemox.ui.wizard.Client.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD110

net.sf.firemox.ui.wizard.InputColor

BugCategoryDetailsLine
Write to static field net.sf.firemox.ui.wizard.InputColor.indexAnswer from instance method net.sf.firemox.ui.wizard.InputColor.InputColor(Ability, String, int, boolean, boolean)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD88

net.sf.firemox.ui.wizard.InputNumber

BugCategoryDetailsLine
Write to static field net.sf.firemox.ui.wizard.InputNumber.indexAnswer from instance method net.sf.firemox.ui.wizard.InputNumber.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD160
Write to static field net.sf.firemox.ui.wizard.InputNumber.indexAnswer from instance method net.sf.firemox.ui.wizard.InputNumber.checkValidity()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD177

net.sf.firemox.ui.wizard.InputProperty

BugCategoryDetailsLine
Write to static field net.sf.firemox.ui.wizard.InputProperty.indexAnswer from instance method net.sf.firemox.ui.wizard.InputProperty.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD98

net.sf.firemox.ui.wizard.InputZone

BugCategoryDetailsLine
Write to static field net.sf.firemox.ui.wizard.InputZone.indexAnswer from instance method net.sf.firemox.ui.wizard.InputZone.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD93

net.sf.firemox.ui.wizard.Log

BugCategoryDetailsLine
net.sf.firemox.ui.wizard.Log.Log() may fail to close streamBAD_PRACTICEOS_OPEN_STREAM60
Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Log.Log()STYLEREC_CATCH_EXCEPTION86

net.sf.firemox.ui.wizard.Network

BugCategoryDetailsLine
Class net.sf.firemox.ui.wizard.Network defines non-transient non-serializable instance field deckBAD_PRACTICESE_BAD_FIELDNot available

net.sf.firemox.ui.wizard.Replacement

BugCategoryDetailsLine
net.sf.firemox.ui.wizard.Replacement.isRunning isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.wizard.Replacement.replacement isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.Replacement(String, List)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD64
Write to static field net.sf.firemox.ui.wizard.Replacement.replacement from instance method net.sf.firemox.ui.wizard.Replacement.Replacement(String, List)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD65
Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD80
Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.mouseClicked(MouseEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD92
Write to static field net.sf.firemox.ui.wizard.Replacement.replacement from instance method net.sf.firemox.ui.wizard.Replacement.mouseClicked(MouseEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD95

net.sf.firemox.ui.wizard.Server

BugCategoryDetailsLine
net.sf.firemox.ui.wizard.Server.Server() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE70
Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Server.actionPerformed(ActionEvent)STYLEREC_CATCH_EXCEPTION197
Write to static field net.sf.firemox.network.ConnectionManager.server from instance method net.sf.firemox.ui.wizard.Server.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD194

net.sf.firemox.ui.wizard.Wizard

BugCategoryDetailsLine
net.sf.firemox.ui.wizard.Wizard.indexAnswer isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.ui.wizard.Wizard.optionAnswer isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
Write to static field net.sf.firemox.ui.wizard.Wizard.optionAnswer from instance method net.sf.firemox.ui.wizard.Wizard.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD153
Write to static field net.sf.firemox.ui.wizard.Wizard.optionAnswer from instance method net.sf.firemox.ui.wizard.Wizard.validAnswer(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD213

net.sf.firemox.ui.wizard.WizardImageIcon

BugCategoryDetailsLine
Class net.sf.firemox.ui.wizard.WizardImageIcon defines non-transient non-serializable instance field cardImageBAD_PRACTICESE_BAD_FIELDNot available
net.sf.firemox.ui.wizard.WizardImageIcon is Serializable; consider declaring a serialVersionUIDBAD_PRACTICESE_NO_SERIALVERSIONIDNot available

net.sf.firemox.ui.wizard.WizardTitle$1

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

net.sf.firemox.xml.Options

BugCategoryDetailsLine
Unwritten field: net.sf.firemox.xml.Options.argumentsCORRECTNESSUWF_UNWRITTEN_FIELD64
Unwritten field: net.sf.firemox.xml.Options.mdbCORRECTNESSUWF_UNWRITTEN_FIELD100
Unwritten field: net.sf.firemox.xml.Options.debugCORRECTNESSUWF_UNWRITTEN_FIELD73
Unwritten field: net.sf.firemox.xml.Options.forceCORRECTNESSUWF_UNWRITTEN_FIELD82
Unwritten field: net.sf.firemox.xml.Options.helpCORRECTNESSUWF_UNWRITTEN_FIELD91
Unwritten field: net.sf.firemox.xml.Options.noPayManaCORRECTNESSUWF_UNWRITTEN_FIELD127
Unwritten field: net.sf.firemox.xml.Options.versionCORRECTNESSUWF_UNWRITTEN_FIELD109
Unwritten field: net.sf.firemox.xml.Options.xsdValidationCORRECTNESSUWF_UNWRITTEN_FIELD118

net.sf.firemox.xml.XmlConfiguration

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE245
Exception is caught when Exception is not thrown in net.sf.firemox.xml.XmlConfiguration.main(String[])STYLEREC_CATCH_EXCEPTION474

net.sf.firemox.xml.XmlDeckTranslator

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

net.sf.firemox.xml.XmlParser

BugCategoryDetailsLine
Exception is caught when Exception is not thrown in net.sf.firemox.xml.XmlParser.XmlParser(boolean)STYLEREC_CATCH_EXCEPTION88

net.sf.firemox.xml.XmlParser$Handler

BugCategoryDetailsLine
Load of known null value in net.sf.firemox.xml.XmlParser$Handler.startElement(String, String, String, Attributes)STYLENP_LOAD_OF_KNOWN_NULL_VALUE203

net.sf.firemox.xml.XmlTbs

BugCategoryDetailsLine
Unchecked/unconfirmed cast from java.io.OutputStream to java.io.FileOutputStream in net.sf.firemox.xml.XmlTbs.updateMdb(String, OutputStream)STYLEBC_UNCONFIRMED_CAST166
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE180
net.sf.firemox.xml.XmlTbs.cardPager isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.XmlTbs.currentActionIndex isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.XmlTbs.currentInEffect isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.XmlTbs.referencedAbilities isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL356
net.sf.firemox.xml.XmlTbs.referencedActions isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL366
net.sf.firemox.xml.XmlTbs.referencedNonMacroActions should be package protectedMALICIOUS_CODEMS_PKGPROTECT371
net.sf.firemox.xml.XmlTbs.referencedTest should be package protectedMALICIOUS_CODEMS_PKGPROTECT361

net.sf.firemox.xml.XmlTools

BugCategoryDetailsLine
net.sf.firemox.xml.XmlTools.defaultOnMeTag isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.XmlTools.testCanBePreempted isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.XmlTools.aliasMap should be package protectedMALICIOUS_CODEMS_PKGPROTECT735
net.sf.firemox.xml.XmlTools.abilities isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL75
net.sf.firemox.xml.XmlTools.zones isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL68
Redundant nullcheck of messageBox, which is known to be non-null in net.sf.firemox.xml.XmlTools.getMessageType(String)STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE726

net.sf.firemox.xml.action.Choice

BugCategoryDetailsLine
Unchecked/unconfirmed cast from java.io.OutputStream to java.io.FileOutputStream in net.sf.firemox.xml.action.Choice.buildMdb(XmlParser$Node, OutputStream)STYLEBC_UNCONFIRMED_CAST81

net.sf.firemox.xml.action.Intlist

BugCategoryDetailsLine
Method net.sf.firemox.xml.action.Intlist.buildMdb(XmlParser$Node, OutputStream) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES85-87

net.sf.firemox.xml.action.Target

BugCategoryDetailsLine
Write to static field net.sf.firemox.xml.XmlTools.testCanBePreempted from instance method net.sf.firemox.xml.action.Target.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD138

net.sf.firemox.xml.action.Targetlist

BugCategoryDetailsLine
Method net.sf.firemox.xml.action.Targetlist.buildMdb(XmlParser$Node, OutputStream) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES94-96

net.sf.firemox.xml.expression.Counter

BugCategoryDetailsLine
net.sf.firemox.xml.expression.Counter.macroCounterTest isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

net.sf.firemox.xml.magic.Options

BugCategoryDetailsLine
Unwritten field: net.sf.firemox.xml.magic.Options.argumentsCORRECTNESSUWF_UNWRITTEN_FIELD55
Unwritten field: net.sf.firemox.xml.magic.Options.destinationCORRECTNESSUWF_UNWRITTEN_FIELD82
Unwritten field: net.sf.firemox.xml.magic.Options.oracleFileCORRECTNESSUWF_UNWRITTEN_FIELD73
Unwritten field: net.sf.firemox.xml.magic.Options.helpCORRECTNESSUWF_UNWRITTEN_FIELD64
Unwritten field: net.sf.firemox.xml.magic.Options.versionCORRECTNESSUWF_UNWRITTEN_FIELD91

net.sf.firemox.xml.magic.Oracle2Xml

BugCategoryDetailsLine
net.sf.firemox.xml.magic.Oracle2Xml.main(String[]) might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE1328
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE179
net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT82
net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) invokes inefficient new String() constructorPERFORMANCEDM_STRING_VOID_CTOR1177
Immediate dereference of the result of readLine() in net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File)STYLENP_IMMEDIATE_DEREFERENCE_OF_READLINE179
Method net.sf.firemox.xml.magic.Oracle2Xml.writeCost(PrintWriter, String, String) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION1720
Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD94

net.sf.firemox.xml.magic.Oracle2XmlNoRules

BugCategoryDetailsLine
net.sf.firemox.xml.magic.Oracle2XmlNoRules.main(String[]) might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE241
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE149
net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT77
Immediate dereference of the result of readLine() in net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File)STYLENP_IMMEDIATE_DEREFERENCE_OF_READLINE149
Possible null pointer dereference in net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) due to return value of called methodSTYLENP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE149
Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD89

net.sf.firemox.xml.tbs.Activatedability

BugCategoryDetailsLine
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Activatedability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD70
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Activatedability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD72

net.sf.firemox.xml.tbs.Card

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

net.sf.firemox.xml.tbs.Replacementability

BugCategoryDetailsLine
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Replacementability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD106
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Replacementability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD89

net.sf.firemox.xml.tbs.Systemability

BugCategoryDetailsLine
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Systemability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD80
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Systemability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD65

net.sf.firemox.xml.tbs.Tbs

BugCategoryDetailsLine
Use of non-localized String.toUpperCase() or String.toLowerCaseI18NDM_CONVERT_CASE694
Method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) invokes toString() method on a StringPERFORMANCEDM_STRING_TOSTRING241
net.sf.firemox.xml.tbs.Tbs.referencedAbilities isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL799
net.sf.firemox.xml.tbs.Tbs.referencedActions isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL809
net.sf.firemox.xml.tbs.Tbs.referencedAttachments isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL824
net.sf.firemox.xml.tbs.Tbs.referencedNonMacroActions isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL814
net.sf.firemox.xml.tbs.Tbs.referencedTest isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL804
net.sf.firemox.xml.tbs.Tbs.resolveReferences isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.xml.tbs.Tbs.macroActions should be package protectedMALICIOUS_CODEMS_PKGPROTECT829
net.sf.firemox.xml.tbs.Tbs.referencedNonMacroAttachments should be package protectedMALICIOUS_CODEMS_PKGPROTECT819
Redundant nullcheck of attributes, which is known to be non-null in net.sf.firemox.xml.tbs.Tbs.writeTaskPaneElement(XmlParser$Node, OutputStream)STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE683
Redundant nullcheck of elements, which is known to be non-null in net.sf.firemox.xml.tbs.Tbs.writeTaskPaneElement(XmlParser$Node, OutputStream)STYLERCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE683
Write to static field net.sf.firemox.xml.tbs.Tbs.macroActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD88
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedAbilities from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD83
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD84
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedAttachments from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD85
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedNonMacroActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD86
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedNonMacroAttachments from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD87
Write to static field net.sf.firemox.xml.tbs.Tbs.referencedTest from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD82
Write to static field net.sf.firemox.xml.tbs.Tbs.resolveReferences from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD89
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD199
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD233
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD493
Write to static field net.sf.firemox.xml.tbs.Tbs.resolveReferences from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD664

net.sf.firemox.xml.tbs.Triggeredability

BugCategoryDetailsLine
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD84
Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD86
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD73
Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD91

net.sf.firemox.zone.ExpandableZone

BugCategoryDetailsLine
Class net.sf.firemox.zone.ExpandableZone defines non-transient non-serializable instance field zoneConfigurationBAD_PRACTICESE_BAD_FIELDNot available
ExpandableZone.gatheredParent not initialized in constructorSTYLEUWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORNot available

net.sf.firemox.zone.PopupManager

BugCategoryDetailsLine
Comparison of String objects using == or != in net.sf.firemox.zone.PopupManager.actionPerformed(ActionEvent) BAD_PRACTICEES_COMPARING_STRINGS_WITH_EQ173
net.sf.firemox.zone.PopupManager.optionsMenu should be package protectedMALICIOUS_CODEMS_PKGPROTECT286
Write to static field net.sf.firemox.zone.PopupManager.triggerPlace from instance method net.sf.firemox.zone.PopupManager.mousePressed(MouseEvent, MZone)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD238

net.sf.firemox.zone.TriggeredBuffer

BugCategoryDetailsLine
Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenHighLevel(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD256
Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenLowestLevel(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD321
Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenNormalLevel(int)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD289

net.sf.firemox.zone.ZoneManager

BugCategoryDetailsLine
net.sf.firemox.zone.ZoneManager.expandedZone isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.zone.ZoneManager.side isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available
net.sf.firemox.zone.ZoneManager.stack isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot available

org.mortbay.util.Password

BugCategoryDetailsLine
Method org.mortbay.util.Password.obfuscate(String) uses the same code for two switch clausesSTYLEDB_DUPLICATE_SWITCH_CLAUSES82-83