The following document contains the results of FindBugs Report
FindBugs Version is 1.2.0
Threshold is Low
Effort is Default
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 2701 | 624 | 0 | 0 |
| Bug | Category | Details | Line |
|---|---|---|---|
| fabdouglas.Starter.init(String, String[]) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 62 |
| fabdouglas.Starter.boot(List, String, String[]) creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged block | BAD_PRACTICE | DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED | 103 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class fabdouglas.Starter$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.allListModel | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.cardLoader | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.leftList | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.rightListModel | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| Class net.sf.firemox.DeckBuilder is final but declares protected field net.sf.firemox.DeckBuilder.timer | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| net.sf.firemox.DeckBuilder.DeckBuilder() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 175 |
| net.sf.firemox.DeckBuilder.actionPerformed(ActionEvent) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 875 |
| net.sf.firemox.DeckBuilder.form isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.DeckBuilder.consoleMode should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 1221 |
| Class net.sf.firemox.DeckBuilder defines non-transient non-serializable instance field cardLoader | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.DeckBuilder defines non-transient non-serializable instance field datasets | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 859 |
| Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.refreshAddComponent(boolean) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 699 |
| Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.setAsSaved() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 1034 |
| Write to static field net.sf.firemox.DeckBuilder.form from instance method net.sf.firemox.DeckBuilder.DeckBuilder() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 168 |
| Write to static field net.sf.firemox.DeckBuilder.modifiedSinceSave from instance method net.sf.firemox.DeckBuilder.removeCardFromDeck() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 731 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 311 |
| net.sf.firemox.Magic.batchMode should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 359 |
| Exception is caught when Exception is not thrown in net.sf.firemox.Magic.Magic() | STYLE | REC_CATCH_EXCEPTION | 175 |
| Write to static field net.sf.firemox.token.MCommonVars.autoMana from instance method net.sf.firemox.Magic.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 612 |
| Write to static field net.sf.firemox.token.MCommonVars.autoStack from instance method net.sf.firemox.Magic.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 618 |
| Write to static field net.sf.firemox.action.PayMana.thresholdColored from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 231 |
| Write to static field net.sf.firemox.network.ConnectionManager.client from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 253 |
| Write to static field net.sf.firemox.network.ConnectionManager.server from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 249 |
| Write to static field net.sf.firemox.token.MCommonVars.autoMana from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 219 |
| Write to static field net.sf.firemox.token.MCommonVars.autoStack from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 227 |
| Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.Magic.Magic() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 223 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class net.sf.firemox.Magic$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.action.ActionFactory is final but declares protected field net.sf.firemox.action.ActionFactory.PICTURES | STYLE | CI_CONFUSED_INHERITANCE | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.action.AddModifierFromStaticModifier.AddModifierFromStaticModifier(ModifierModel[]) may expose internal representation by storing an externally mutable object into AddModifierFromStaticModifier.modifiers | MALICIOUS_CODE | EI_EXPOSE_REP2 | 42 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.action.AssignDamageFromTo.toString(Ability) | STYLE | REC_CATCH_EXCEPTION | 82 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.action.GiveManaMulti.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 138 |
| Method net.sf.firemox.action.GiveManaMulti.toString(Ability) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 176 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.action.InputChoice.getActionList(Ability, MAction[], int, ContextEventListener) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 290 |
| Method net.sf.firemox.action.InputChoice.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 185 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 144 |
| 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) | STYLE | BC_UNCONFIRMED_CAST | 143 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 111 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 148 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.stack.EventManager.nextCurrentPlayer from instance method net.sf.firemox.action.NextCurrentPlayer.play(ContextEventListener, Ability) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 67 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.action.PayMana.thresholdColored isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.action.PayMana.useMana isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Method net.sf.firemox.action.PayMana.toHtmlString(int[]) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 122 |
| Method net.sf.firemox.action.PayMana.toString(Ability) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 557 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 91 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from net.sf.firemox.action.MAction to net.sf.firemox.action.Tap in net.sf.firemox.action.Tap.equal(MAction) | STYLE | BC_UNCONFIRMED_CAST | 132 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.action.UnregisterThis.instance isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 68 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.action.ActionFactory.currentAction from instance method net.sf.firemox.action.UserAction.UserAction(String, String) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 91 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.action.WaitActivatedChoice.opponentResponse isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 182 |
| Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 183 |
| Write to static field net.sf.firemox.stack.StackManager.oldIdHandedPlayer from instance method net.sf.firemox.action.WaitActivatedChoice.waitAbilityChoice(Player) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 194 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.action.target.AbstractTarget implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.chart.CardColor defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 27 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.chart.CardTypes defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 27 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 85 |
| 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) | STYLE | BC_UNCONFIRMED_CAST | 88 |
| 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) | STYLE | BC_UNCONFIRMED_CAST | 82 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Should net.sf.firemox.chart.ChartFilter$MAreaPlot be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Should net.sf.firemox.chart.ChartFilter$MBarPlot be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Should net.sf.firemox.chart.ChartFilter$MPiePlot be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.chart.datasets.BarDataset is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.chart.datasets.CategoryDataset is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.chart.datasets.PieDataset is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.ability.Ability.resolveStack() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 359 |
| Write to static field net.sf.firemox.clickable.ability.AbilityFactory.lastInstance from instance method net.sf.firemox.clickable.ability.Ability.Ability(InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 86 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.ability.AbstractAbility.actionList() may expose internal representation by returning AbstractAbility.actionList | MALICIOUS_CODE | EI_EXPOSE_REP | 68 |
| net.sf.firemox.clickable.ability.AbstractAbility.effectList() may expose internal representation by returning AbstractAbility.effectList | MALICIOUS_CODE | EI_EXPOSE_REP | 73 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.clickable.ability.Optimization.addTo(Ability, ContextEventListener, List) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 98 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.ability.SystemAbility.effectList() may expose internal representation by returning SystemAbility.effectList | MALICIOUS_CODE | EI_EXPOSE_REP | 136 |
| net.sf.firemox.clickable.ability.SystemAbility.instance isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 173 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class net.sf.firemox.clickable.ability.TriggeredAbilitySet$NestedAbility could be refactored into a _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.ability.UserAbility.actionList() may expose internal representation by returning UserAbility.actionList | MALICIOUS_CODE | EI_EXPOSE_REP | 255 |
| net.sf.firemox.clickable.ability.UserAbility.effectList() may expose internal representation by returning UserAbility.effectList | MALICIOUS_CODE | EI_EXPOSE_REP | 260 |
| Bad comparison of signed byte with 128 in net.sf.firemox.clickable.ability.UserAbility.clickOn(byte[]) | CORRECTNESS | INT_BAD_COMPARISON_WITH_SIGNED_BYTE | 309 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.clickable.action.ChosenCostPanel.ttClick from instance method net.sf.firemox.clickable.action.ChosenCostPanel.initialize() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 218 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Comparison of String objects using == or != in net.sf.firemox.clickable.action.JChosenAction.getToolTipText() | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 111 |
| Write to static field net.sf.firemox.clickable.action.JChosenAction.completingImage from instance method net.sf.firemox.clickable.action.JChosenAction.JChosenAction(ActionContextWrapper) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 86 |
| Write to static field net.sf.firemox.clickable.action.JChosenAction.uncompletedImage from instance method net.sf.firemox.clickable.action.JChosenAction.JChosenAction(ActionContextWrapper) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 84 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.clickable.mana.Mana.init(String) | STYLE | REC_CATCH_EXCEPTION | 146 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.target.TargetFactory.abilitiesMenu isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.TargetFactory.tooltipDirtyDataBase isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.TargetFactory.tooltipInvalidTarget isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.TargetFactory.tooltipValidTarget isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.TargetFactory.triggerTargetable isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Field AbstractCard.ui masks field in superclass javax.swing.JComponent | CORRECTNESS | MF_CLASS_MASKS_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.clickable.target.card.CardFactory.lastCardName from instance method net.sf.firemox.clickable.target.card.AbstractCardModel.setCardName(String) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 254 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.target.card.Attachment.getModifiers() may expose internal representation by returning Attachment.modifiers | MALICIOUS_CODE | EI_EXPOSE_REP | 97 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.target.card.CardFactory.borderColor isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.cardHeight isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.cardWidth isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.countItem isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.exportedProperties isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.powerToughnessColor isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.ttHeader isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.exportedIdCardNames is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.exportedIdCardValues is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.expandItem should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.gatherItem should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.previewCard should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 663 |
| net.sf.firemox.clickable.target.card.CardFactory.propertyPictures should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.clickable.target.card.CardFactory.propertyPicturesHTML should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.target.card.CardModelImpl.getAbilities() may expose internal representation by returning CardModelImpl.abilities | MALICIOUS_CODE | EI_EXPOSE_REP | 129 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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.registers | MALICIOUS_CODE | EI_EXPOSE_REP2 | 75 |
| Class net.sf.firemox.clickable.target.card.DelayedCard defines non-transient non-serializable instance field ability | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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.cachedRegisters | MALICIOUS_CODE | EI_EXPOSE_REP2 | 79 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field abilityModifier | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field colorModifier | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field idCardModifier | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field originalDatabase | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field playableZoneModifier | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.MCard defines non-transient non-serializable instance field propertyModifier | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Write to static field net.sf.firemox.clickable.target.TargetFactory.triggerTargetable from instance method net.sf.firemox.clickable.target.card.MCard.mouseClicked(MouseEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 797 |
| Write to static field net.sf.firemox.clickable.target.TargetFactory.triggerTargetable from instance method net.sf.firemox.clickable.target.card.MCard.mouseClicked(MouseEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 870 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.SystemCard.actionPerformed(ActionEvent) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 67 |
| net.sf.firemox.clickable.target.card.SystemCard.instance isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 45 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.clickable.target.card.TriggeredCard.cardHeight isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | Not available |
| net.sf.firemox.clickable.target.card.TriggeredCard.cardWidth isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | Not available |
| Class net.sf.firemox.clickable.target.card.TriggeredCard implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field cachedImage | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field cachedScaledImage | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field context | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.clickable.target.card.TriggeredCard defines non-transient non-serializable instance field triggeredAbility | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| java.awt.image.BufferedImage stored into non-transient field TriggeredCard.cachedScaledImage | BAD_PRACTICE | SE_BAD_FIELD_STORE | 225 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.clickable.target.card.TriggeredCardChoice implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Write to static field net.sf.firemox.clickable.target.card.TriggeredCardChoice.waitingTriggered from instance method net.sf.firemox.clickable.target.card.TriggeredCardChoice.newSpell() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 88 |
| TriggeredCardChoice.contexts not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| TriggeredCardChoice.either not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Random object created and used only once in net.sf.firemox.clickable.target.card.VirtualCard.updateSizes() | BAD_PRACTICE | DMI_RANDOM_USED_ONLY_ONCE | 649 |
| Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.VirtualCard.getTooltipString() | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 554 |
| Comparison of String objects using == or != in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 276 |
| int division result cast to double or float in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 279 |
| int division result cast to double or float in net.sf.firemox.clickable.target.card.VirtualCard.paintComponent(Graphics) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 284 |
| Class net.sf.firemox.clickable.target.card.VirtualCard defines non-transient non-serializable instance field cardInfoFilter | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Opponent.nickName not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 650 |
| Comparison of String objects using == or != in net.sf.firemox.clickable.target.player.Player.paint(Graphics) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 776 |
| net.sf.firemox.clickable.target.player.Player.SETTINGS should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 836 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.target.player.Player.setActivePlayer() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 395 |
| Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.clickable.target.player.Player.setHandedPlayer() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 408 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.clickable.target.player.Player.waitTriggeredBufferChoiceRec() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 500 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.database.DatabaseCard.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 51 |
| net.sf.firemox.database.DatabaseCard.getPictureProxies() may expose internal representation by returning DatabaseCard.pictureProxies | MALICIOUS_CODE | EI_EXPOSE_REP | 145 |
| net.sf.firemox.database.DatabaseCard.setPictureProxies(Proxy[]) may expose internal representation by storing an externally mutable object into DatabaseCard.pictureProxies | MALICIOUS_CODE | EI_EXPOSE_REP2 | 501 |
| Exception is caught when Exception is not thrown in net.sf.firemox.database.DatabaseCard.getPictureStream() | STYLE | REC_CATCH_EXCEPTION | 278 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.database.DatabaseFactory.backImage isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.database.DatabaseFactory.damageImage isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.database.DatabaseFactory.damageScaledImage isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.database.DatabaseFactory.propertiesCacheConfig isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.database.DatabaseFactory.scaledBackImage isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.database.DatabaseFactory.dataProxies is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.database.DatabaseFactory.pictureProxies is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.database.DatabaseFactory.blankImage isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | Not available |
| Redundant nullcheck of res, which is known to be non-null in net.sf.firemox.database.DatabaseFactory.getDatabase(String, CardModel, Map) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 175 |
| Exception is caught when Exception is not thrown in net.sf.firemox.database.DatabaseFactory.init(InputStream) | STYLE | REC_CATCH_EXCEPTION | 415 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 144 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 339 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 355 |
| net.sf.firemox.database.Proxy.getStringFromStream(CardModel, Map) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 246 |
| Exception is caught when Exception is not thrown in net.sf.firemox.database.Proxy.getLocalPictures(CardModel, Map) | STYLE | REC_CATCH_EXCEPTION | 408 |
| Exception is caught when Exception is not thrown in net.sf.firemox.database.Proxy.getRemotePictures(CardModel, Map) | STYLE | REC_CATCH_EXCEPTION | 382 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 51 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.database.XmlDeckTranslator.convert(String) | STYLE | REC_CATCH_EXCEPTION | 71 |
| Write to static field net.sf.firemox.database.XmlDeckTranslator.config from instance method net.sf.firemox.database.XmlDeckTranslator.XmlDeckTranslator() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 48 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.database.data.CollectionData.CollectionData(PropertyConfig, String[]) may expose internal representation by storing an externally mutable object into CollectionData.values | MALICIOUS_CODE | EI_EXPOSE_REP2 | 53 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.database.propertyconfig.PropertyConfig defines hashCode and uses Object.equals() | BAD_PRACTICE | HE_HASHCODE_USE_OBJECT_EQUALS | 88 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.database.propertyconfig.PropertyProxyConfig.values isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 60 |
| Write to static field net.sf.firemox.expression.StringMethod.testedString from instance method net.sf.firemox.database.propertyconfig.PropertyProxyConfig.parseProperty(String, String, Proxy) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 95 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 202 |
| net.sf.firemox.deckbuilder.BuildBook.build() may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 104 |
| net.sf.firemox.deckbuilder.BuildBook.getImage(String) may fail to close stream on exception | BAD_PRACTICE | OS_OPEN_STREAM_EXCEPTION_PATH | 232 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.deckbuilder.CardLoader.CardLoader(TimerGlassPane) | STYLE | REC_CATCH_EXCEPTION | 74 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.deckbuilder.CardView defines non-transient non-serializable instance field databaseCard | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.deckbuilder.ConstraintsChecker defines non-transient non-serializable instance field deck | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.deckbuilder.Deck.currentDeck isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.deckbuilder.DeckConstraint defines compareTo(DeckConstraint) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 123-129 |
| Redundant nullcheck of net.sf.firemox.test.DeckCounter.lastRanCard which is known to be null in net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE | 102 |
| Write to static field net.sf.firemox.deckbuilder.Deck.currentDeck from instance method net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 97 |
| Write to static field net.sf.firemox.test.DeckCounter.lastRanCard from instance method net.sf.firemox.deckbuilder.DeckConstraint.validate(Deck) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 98 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.deckbuilder.DeckConstraints.MASTER isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.deckbuilder.MdbLoader.loadTBSSettings(String) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 491 |
| net.sf.firemox.deckbuilder.MdbLoader.saveTBSSettings(String) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 452 |
| net.sf.firemox.deckbuilder.MdbLoader.backPicture isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 104 |
| net.sf.firemox.deckbuilder.MdbLoader.coloredManaBigURL isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.coloredManaSmlURL isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.colorlessBigURL isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.colorlessURL isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.damagePicture isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 109 |
| net.sf.firemox.deckbuilder.MdbLoader.unknownSmlMana isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.unknownSmlManaHtml isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.coloredBigManas is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.coloredSmlManas is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.coloredSmlManasHtml is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.colorlessSmlManas is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| net.sf.firemox.deckbuilder.MdbLoader.colorlessSmlManasHtml is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.event.MEventListener.CAN_I_CAST_ABILITIES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 311 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 133 |
| net.sf.firemox.event.TriggeredEvent.replacement should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.event.UncaughtException is not derived from an Exception, even though it is named as such | BAD_PRACTICE | NM_CLASS_NOT_EXCEPTION | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 160 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 131 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 162 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.stack.EventManager.nextPhaseIndex from instance method net.sf.firemox.event.phase.PhaseFilter.setNextPhase(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 69 |
| Write to static field net.sf.firemox.stack.EventManager.nextPhaseIndex from instance method net.sf.firemox.event.phase.PhaseFilter.setNextPhase(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 74 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.expression.Counter.superTested isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 144 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.expression.DeckCounter.lastRanTest should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| Write to static field net.sf.firemox.expression.DeckCounter.lastRanTest from instance method net.sf.firemox.expression.DeckCounter.getValue(Ability, Target, ContextEventListener) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 76 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.expression.ObjectValue.ObjectValue(InputStream) | STYLE | REC_CATCH_EXCEPTION | 76 |
| Exception is caught when Exception is not thrown in net.sf.firemox.expression.ObjectValue.getObject(Ability, Target, ContextEventListener) | STYLE | REC_CATCH_EXCEPTION | 91 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.expression.StringMethod.testedString isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.mail.MailUtils.sendEmail(String, String, String[], String, String, List, Header[], String, String) | STYLE | REC_CATCH_EXCEPTION | 177 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.management.MonitoredCheckContent.run() | STYLE | REC_CATCH_EXCEPTION | 239 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.AbilityModifier.AbilityModifier(ModifierContext, Operation, Ability[]) may expose internal representation by storing an externally mutable object into AbilityModifier.abilitiesToAdd | MALICIOUS_CODE | EI_EXPOSE_REP2 | 49 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Redundant nullcheck of net.sf.firemox.modifier.Modifier.next, which is known to be non-null in net.sf.firemox.modifier.Modifier.addModifier(Modifier) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 129 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.AbilityModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 40 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.AdditionalCostModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 38 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.ColorModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 47 |
| Method net.sf.firemox.modifier.model.ColorModifierModel.toHtmlString(Ability, ContextEventListener) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 106 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.ControllerModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 36 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.IdCardModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 44 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.ObjectAbilityModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 35 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.PlayableZoneModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 37 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.PropertyModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 43 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.RegisterIndirectionModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 44 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.RegisterModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 45 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.modifier.model.StaticModifierModel.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 47 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.action.PayMana.useMana from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 204 |
| Write to static field net.sf.firemox.action.WaitActivatedChoice.opponentResponse from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 207 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 88 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 285 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 231 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 238 |
| Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 232 |
| Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Client.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 239 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.network.ConnectionManager.client isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 143 |
| net.sf.firemox.network.ConnectionManager.server isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 138 |
| Exception is caught when Exception is not thrown in net.sf.firemox.network.ConnectionManager.closeConnexions() | STYLE | REC_CATCH_EXCEPTION | 77 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.network.MBigPipe.instance should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| Write to static field net.sf.firemox.network.MBigPipe.instance from instance method net.sf.firemox.network.MBigPipe.MBigPipe(InputStream, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 49 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Using notify rather than notifyAll in net.sf.firemox.network.MMiniPipe.release() | MT_CORRECTNESS | NO_NOTIFY_NOT_NOTIFYALL | 90 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.readReplacementAnswer() | MT_CORRECTNESS | NO_NOTIFY_NOT_NOTIFYALL | 186 |
| Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.run() | MT_CORRECTNESS | NO_NOTIFY_NOT_NOTIFYALL | 155 |
| Using notify rather than notifyAll in net.sf.firemox.network.MSocketListener.stack(CoreMessage) | MT_CORRECTNESS | NO_NOTIFY_NOT_NOTIFYALL | 216 |
| Unconditional wait in net.sf.firemox.network.MSocketListener.readReplacementAnswer() | MT_CORRECTNESS | UW_UNCOND_WAIT | 178 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.network.NetworkActor.closeConnexion() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 91 |
| net.sf.firemox.network.NetworkActor.cancelling isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.closeConnexion() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 82 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.NetworkActor(Deck, char[]) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 61 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.NetworkActor.readAndValidateOpponentDeck() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 149 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.network.Server.closeConnexion() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 294 |
| Write to static field net.sf.firemox.action.PayMana.useMana from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 189 |
| Write to static field net.sf.firemox.action.WaitActivatedChoice.opponentResponse from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 193 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 275 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 221 |
| Write to static field net.sf.firemox.stack.StackManager.idActivePlayer from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 228 |
| Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 222 |
| Write to static field net.sf.firemox.stack.StackManager.idCurrentPlayer from instance method net.sf.firemox.network.Server.run() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 229 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.network.message.CoreMessage.getData() may expose internal representation by returning CoreMessage.data | MALICIOUS_CODE | EI_EXPOSE_REP | 69 |
| net.sf.firemox.network.message.CoreMessage.CoreMessage(CoreMessageType, byte[]) may expose internal representation by storing an externally mutable object into CoreMessage.data | MALICIOUS_CODE | EI_EXPOSE_REP2 | 60 |
| net.sf.firemox.network.message.CoreMessage.CoreMessage(InputStream) ignores result of java.io.InputStream.read(byte[]) | BAD_PRACTICE | RR_NOT_CHECKED | 47 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.stack.ActionManager.actionList() may expose internal representation by returning ActionManager.actionList | MALICIOUS_CODE | EI_EXPOSE_REP | 189 |
| net.sf.firemox.stack.ActionManager.actionList() may expose internal representation by returning ActionManager.effectList | MALICIOUS_CODE | EI_EXPOSE_REP | 187 |
| net.sf.firemox.stack.ActionManager.getAllActionContexts() may expose internal representation by returning ActionManager.actionsContextsWrapper | MALICIOUS_CODE | EI_EXPOSE_REP | 695 |
| net.sf.firemox.stack.ActionManager.getRequiredMana() may expose internal representation by returning ActionManager.requiredMana | MALICIOUS_CODE | EI_EXPOSE_REP | 1106 |
| net.sf.firemox.stack.ActionManager.getTotalActionContexts() may expose internal representation by returning ActionManager.actionsContextsWrapper | MALICIOUS_CODE | EI_EXPOSE_REP | 718 |
| net.sf.firemox.stack.ActionManager.getTotalActionContexts() may expose internal representation by returning ActionManager.validatedActionsContextsWrapper | MALICIOUS_CODE | EI_EXPOSE_REP | 715 |
| Redundant nullcheck of net.sf.firemox.stack.StackManager.triggered which is known to be null in net.sf.firemox.stack.ActionManager.playNextAction() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE | 488 |
| Write to static field net.sf.firemox.stack.StackManager.gameLostProceed from instance method net.sf.firemox.stack.ActionManager.playNextAction() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 434 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.stack.EventManager.currentIdPhase isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 562 |
| net.sf.firemox.stack.EventManager.nextCurrentPlayer isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.EventManager.nextPhaseIndex isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.EventManager.parsingEndPhaseEvent isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.EventManager.phaseIndex isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.EventManager.turnStructure is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.stack.MPhase.phases is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 576 |
| net.sf.firemox.stack.MPhase.optionsMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.stack.MPhase.triggerPhase should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| Class net.sf.firemox.stack.MPhase defines non-transient non-serializable instance field phaseType | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Write to static field net.sf.firemox.stack.MPhase.breakpointImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 161 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 162 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllMediumImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 166 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllMediumOnceImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 167 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllOnceImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 163 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllOnceVeryImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 165 |
| Write to static field net.sf.firemox.stack.MPhase.skipAllVeryImg from instance method net.sf.firemox.stack.MPhase.MPhase(PhaseType, int, InputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 164 |
| Write to static field net.sf.firemox.stack.MPhase.triggerPhase from instance method net.sf.firemox.stack.MPhase.mouseClicked(MouseEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 446 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 565 |
| 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) | STYLE | BC_UNCONFIRMED_CAST | 920 |
| net.sf.firemox.stack.StackManager.abilityID isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 1063 |
| net.sf.firemox.stack.StackManager.currentAbility isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.intList isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.spellController isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.targetOptions isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.tokenCard isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.triggered isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.stack.StackManager.PLAYERS is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 1094 |
| net.sf.firemox.stack.StackManager.registers is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 1025 |
| net.sf.firemox.stack.StackManager.canBeAborted should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.stack.StackManager.previousPlace should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.stack.StackManager.zoneAbortion should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.stack.StackManager.noReplayToken isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 1146 |
| Write to static field net.sf.firemox.stack.StackManager.aborted from instance method net.sf.firemox.stack.StackManager.abortion(AbstractCard, Ability) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 521 |
| Write to static field net.sf.firemox.stack.StackManager.gameLostProceed from instance method net.sf.firemox.stack.StackManager.finishSpell() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 412 |
| Write to static field net.sf.firemox.stack.StackManager.actionManager from instance method net.sf.firemox.stack.StackManager.init(InputStream, int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 161 |
| Write to static field net.sf.firemox.stack.StackManager.zoneAbortion from instance method net.sf.firemox.stack.StackManager.init(InputStream, int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 151 |
| Write to static field net.sf.firemox.stack.StackManager.actionManager from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 259 |
| Write to static field net.sf.firemox.stack.StackManager.canBeAborted from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 252 |
| Write to static field net.sf.firemox.stack.StackManager.currentAbility from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 256 |
| Write to static field net.sf.firemox.stack.StackManager.intList from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 249 |
| Write to static field net.sf.firemox.stack.StackManager.registers from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 247 |
| Write to static field net.sf.firemox.stack.StackManager.spellController from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 246 |
| Write to static field net.sf.firemox.stack.StackManager.targetOptions from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 250 |
| Write to static field net.sf.firemox.stack.StackManager.triggered from instance method net.sf.firemox.stack.StackManager.initNewSpell(Ability, Player, TriggeredCard) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 251 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.test.DeckCounter.lastRanCard isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.test.DeckCounter.lastRanInstance isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Write to static field net.sf.firemox.test.DeckCounter.lastRanCard from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 90 |
| Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 99 |
| Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 107 |
| Write to static field net.sf.firemox.test.DeckCounter.lastRanInstance from instance method net.sf.firemox.test.DeckCounter.test(Ability, Target) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 115 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 63 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | BC_UNCONFIRMED_CAST | 550 |
| Method net.sf.firemox.test.TestOn.getTargetable(Ability, MCard, ContextEventListener, Target) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 546 |
| Method net.sf.firemox.test.TestOn.getTargetable(Ability, MCard, ContextEventListener, Target) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 571 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 828 |
| Class net.sf.firemox.test.TestOn implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdAbilities.ABILITIES_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 48 |
| net.sf.firemox.token.IdAbilities.ABILITIES_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 53 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdCardColors.CARD_COLOR is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 37 |
| net.sf.firemox.token.IdCardColors.CARD_COLOR_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 31 |
| net.sf.firemox.token.IdCardColors.CARD_COLOR_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 43 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdCommonToken.COLOR_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 81 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdConst.VALUES_NAME is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 162 |
| net.sf.firemox.token.IdConst.EMPTY_CODE is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 152 |
| net.sf.firemox.token.IdConst.VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 168 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdPositions.POSITION_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 45 |
| net.sf.firemox.token.IdPositions.POSITION_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 50 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdTargets.MODE_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 116 |
| net.sf.firemox.token.IdTargets.MODE_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 123 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdTokens.REGISTER_INDEX_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 158 |
| net.sf.firemox.token.IdTokens.REGISTER_INDEX_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 163 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.IdZones.ZONE_NAMES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 106 |
| net.sf.firemox.token.IdZones.ZONE_VALUES is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 113 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.MCommonVars.autoMana isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.token.MCommonVars.autoStack isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.token.MCommonVars.registers is a mutable array | MALICIOUS_CODE | MS_MUTABLE_ARRAY | 32 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.token.Register.REGISTER_NAMES should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 225 |
| net.sf.firemox.token.Register.REGISTER_VALUES should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 234 |
| Write to static field net.sf.firemox.xml.XmlTools.testCanBePreempted from instance method net.sf.firemox.token.Register.serialize(OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 123 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.token.TrueFalseAuto.getValue() uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 103 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.token.Visibility.decreaseFor(Player, VisibilityChange) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 154 |
| Method net.sf.firemox.token.Visibility.increaseFor(Player, VisibilityChange) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 124 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 145 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 185 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 164 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.tools.HistoComboboxModel is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.tools.IntegerList is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Equals method for net.sf.firemox.tools.JavaVersion assumes the argument is of type JavaVersion | BAD_PRACTICE | BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS | 172 |
| Method net.sf.firemox.tools.JavaVersion.toString() concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 192 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.tools.MCardCompare.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 40 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 156 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 173 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 169 |
| net.sf.firemox.tools.MCardCompare.equals(Object) does not check for null argument | BAD_PRACTICE | NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT | 164 |
| net.sf.firemox.tools.MCardCompare implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1132 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1301 |
| net.sf.firemox.tools.MToolKit.defaultFont isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.tools.MToolKit.fileChooser isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.tools.MToolKit.mdbFile isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.tools.MToolKit.tbsName isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.tools.MToolKit.translator isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 1192 |
| net.sf.firemox.tools.MToolKit.random isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 1007 |
| Method net.sf.firemox.tools.MToolKit.getHtmlMana(int, int) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 857 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from java.awt.Image to sun.awt.image.ToolkitImage in net.sf.firemox.tools.Picture.getScaledImage(Image) | STYLE | BC_UNCONFIRMED_CAST | 382 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 236 |
| Comparison of String parameter using == or != in net.sf.firemox.tools.Picture.setImage(Image, String) | BAD_PRACTICE | ES_COMPARING_PARAMETER_STRING_WITH_EQ | 102 |
| Class net.sf.firemox.tools.Picture defines non-transient non-serializable instance field cardImage | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.tools.RevertedArrayList implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| net.sf.firemox.tools.RevertedArrayList is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Random object created and used only once in net.sf.firemox.tools.RollingFileAppender.subAppend(LoggingEvent) | BAD_PRACTICE | DMI_RANDOM_USED_ONLY_ONCE | 101 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.tools.TimerTarget.TimerTarget(TimerGlassPane) | STYLE | REC_CATCH_EXCEPTION | 64 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.tools.VersionChecker.checkVersion(Component) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 58 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 170 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.MCardTableModel is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Call to equals() comparing different types in net.sf.firemox.ui.MListModel.indexOf(String) | CORRECTNESS | EC_UNRELATED_TYPES | 165 |
| net.sf.firemox.ui.MListModel is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.MagicUIComponents.initComponents() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 145 |
| net.sf.firemox.ui.MagicUIComponents.backgroundBtn isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.chatHistoryText isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.chosenCostPanel isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.databasePanel isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.logListing isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.magicForm isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.playerTabbedPanel isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.sendButton isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.skipButton isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.skipMenu isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.targetTimer isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.timer isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.waitingLabel isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.MagicUIComponents.autoManaMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.autoPlayMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.cardBorderMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.chatPanel should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.dismissdelayMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.frameDecorated should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.initialdelayMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.lookAndFeelName should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.moreThemeMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.previewPanel should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.reverseArtCheck should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.reverseSideCheck should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.sendTxt should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.soundMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.splash should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.themeMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available |
| net.sf.firemox.ui.MagicUIComponents.speparateAvatar isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 813 |
| Class net.sf.firemox.ui.MagicUIComponents implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Write to static field net.sf.firemox.ui.MagicUIComponents.magicForm from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 121 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.targetTimer from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 132 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.timer from instance method net.sf.firemox.ui.MagicUIComponents.MagicUIComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 133 |
| Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 148 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.autoManaMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 508 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.autoPlayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 517 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.backgroundBtn from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 165 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.cardBorderMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 394 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.chatHistoryText from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 223 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.chatPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 219 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.chosenCostPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 182 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.databasePanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 183 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.dismissdelayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 447 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.initialdelayMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 445 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.languageMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 461 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.logListing from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 284 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.moreThemeMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 149 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.playerTabbedPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 175 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.previewPanel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 180 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.reverseArtCheck from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 371 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.reverseSideCheck from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 378 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.sendButton from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 266 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.sendTxt from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 262 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.skipButton from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 345 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.skipMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 350 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.soundMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 427 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.themeMenu from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 454 |
| Write to static field net.sf.firemox.ui.MagicUIComponents.waitingLabel from instance method net.sf.firemox.ui.MagicUIComponents.initComponents() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 152 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class net.sf.firemox.ui.MagicUIComponents$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.MdbListener.actionPerformed(ActionEvent) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 125 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Comparison of String parameter using == or != in net.sf.firemox.ui.SkinLF.installLookAndFeel(String, Object) | BAD_PRACTICE | ES_COMPARING_PARAMETER_STRING_WITH_EQ | 138 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.ui.TargetGlassPane defines non-transient non-serializable instance field composite | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.ui.TargetGlassPane defines non-transient non-serializable instance field stackContext | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.TimerGlassPane.updatePicture(Image, Image[]) may expose internal representation by storing an externally mutable object into TimerGlassPane.gifPicture | MALICIOUS_CODE | EI_EXPOSE_REP2 | 81 |
| net.sf.firemox.ui.TimerGlassPane.updatePicture(Image, Image[]) may expose internal representation by storing an externally mutable object into TimerGlassPane.gifPicture | MALICIOUS_CODE | EI_EXPOSE_REP2 | 89 |
| Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field composite | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field gifPicture | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.ui.TimerGlassPane defines non-transient non-serializable instance field timerPicture | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to type in net.sf.firemox.ui.ToolKit.getScaledInstance(BufferedImage, int, int, int, Color) | STYLE | DLS_DEAD_LOCAL_STORE | 90 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.TooltipFilter.fullInstance isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 70 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.component.ChatArea.mouseClicked(MouseEvent) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 179 |
| Questionable use of non-short-circuit logic in net.sf.firemox.ui.component.ChatArea.mouseClicked(MouseEvent) | BAD_PRACTICE | NS_NON_SHORT_CIRCUIT | 175 |
| Questionable use of non-short-circuit logic in net.sf.firemox.ui.component.ChatArea.mouseMoved(MouseEvent) | BAD_PRACTICE | NS_NON_SHORT_CIRCUIT | 193 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Inconsistent synchronization of net.sf.firemox.ui.component.EditorPane.contact; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 55 |
| Inconsistent synchronization of net.sf.firemox.ui.component.EditorPane.you; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 54 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.component.JPrompt.value should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 145 |
| Write to static field net.sf.firemox.ui.component.JPrompt.value from instance method net.sf.firemox.ui.component.JPrompt.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 78 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.component.LoaderConsole.setVisible(boolean) | STYLE | REC_CATCH_EXCEPTION | 116 |
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.ui.component.LoaderConsole.processWindowEvent(WindowEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 127 |
| Write to static field net.sf.firemox.ui.component.LoaderConsole.instance from instance method net.sf.firemox.ui.component.LoaderConsole.setVisible(boolean) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 114 |
| Write to static field net.sf.firemox.ui.component.LoaderConsole.loadingPorgressbar from instance method net.sf.firemox.ui.component.LoaderConsole.LoaderConsole() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 68 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.network.NetworkActor.cancelling from instance method net.sf.firemox.ui.component.LoaderConsole$1.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 75 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field ability | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field context | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class net.sf.firemox.ui.component.MessageButton defines non-transient non-serializable instance field action | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.component.MiniCard is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to additionalZones in net.sf.firemox.ui.component.TableTop.initTbs(Player) | STYLE | DLS_DEAD_LOCAL_STORE | 196 |
| Dead store to delayedSPanel in net.sf.firemox.ui.component.TableTop.initTbs(Player) | STYLE | DLS_DEAD_LOCAL_STORE | 197 |
| Write to static field net.sf.firemox.ui.component.TableTop.instance from instance method net.sf.firemox.ui.component.TableTop.TableTop(JTabbedPane, JTabbedPane) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 79 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.component.ThreadSafeJList.getPreferredSize() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 48 |
| Bug | Category | Details | Line |
|---|---|---|---|
| LinkAction.url not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Comparison of String objects using == or != in net.sf.firemox.ui.i18n.LanguageManager.getSecondaryBundle(String) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 166 |
| net.sf.firemox.ui.i18n.LanguageManager.languages isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from java.awt.Container to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.ui.layout.AttachmentLayout.layoutContainer(Container) | STYLE | BC_UNCONFIRMED_CAST | 86 |
| Unchecked/unconfirmed cast from java.awt.Container to net.sf.firemox.clickable.target.card.MCard in net.sf.firemox.ui.layout.AttachmentLayout.preferredLayoutSize(Container) | STYLE | BC_UNCONFIRMED_CAST | 65 |
| Write to static field net.sf.firemox.ui.layout.AttachmentLayout.attachmentDy from instance method net.sf.firemox.ui.layout.AttachmentLayout.AttachmentLayout() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 59 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.layout.BorderLayout2 is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.ui.layout.FlowLayoutVertical2 implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.wizard.Arrange.Arrange(int, List, int[], Player) may expose internal representation by storing an externally mutable object into Arrange.order | MALICIOUS_CODE | EI_EXPOSE_REP2 | 66 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Bug.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 208 |
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Bug.Bug() | STYLE | REC_CATCH_EXCEPTION | 155 |
| Class net.sf.firemox.ui.wizard.Bug defines non-transient non-serializable instance field screenShot | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 132 |
| Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 139 |
| Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 144 |
| Write to static field net.sf.firemox.ui.wizard.Choice.indexAnswer from instance method net.sf.firemox.ui.wizard.Choice.Choice(Ability, boolean, List) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 77 |
| Write to static field net.sf.firemox.ui.wizard.Choice.optionAnswer from instance method net.sf.firemox.ui.wizard.Choice.Choice(Ability, boolean, List) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 78 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Client.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 113 |
| Write to static field net.sf.firemox.network.ConnectionManager.client from instance method net.sf.firemox.ui.wizard.Client.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 110 |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 88 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.ui.wizard.InputNumber.indexAnswer from instance method net.sf.firemox.ui.wizard.InputNumber.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 160 |
| Write to static field net.sf.firemox.ui.wizard.InputNumber.indexAnswer from instance method net.sf.firemox.ui.wizard.InputNumber.checkValidity() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 177 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.ui.wizard.InputProperty.indexAnswer from instance method net.sf.firemox.ui.wizard.InputProperty.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 98 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.ui.wizard.InputZone.indexAnswer from instance method net.sf.firemox.ui.wizard.InputZone.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 93 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.wizard.Log.Log() may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 60 |
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Log.Log() | STYLE | REC_CATCH_EXCEPTION | 86 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.ui.wizard.Network defines non-transient non-serializable instance field deck | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.wizard.Replacement.isRunning isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.wizard.Replacement.replacement isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.Replacement(String, List) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 64 |
| Write to static field net.sf.firemox.ui.wizard.Replacement.replacement from instance method net.sf.firemox.ui.wizard.Replacement.Replacement(String, List) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 65 |
| Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 80 |
| Write to static field net.sf.firemox.ui.wizard.Replacement.isRunning from instance method net.sf.firemox.ui.wizard.Replacement.mouseClicked(MouseEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 92 |
| Write to static field net.sf.firemox.ui.wizard.Replacement.replacement from instance method net.sf.firemox.ui.wizard.Replacement.mouseClicked(MouseEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 95 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.wizard.Server.Server() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 70 |
| Exception is caught when Exception is not thrown in net.sf.firemox.ui.wizard.Server.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 197 |
| Write to static field net.sf.firemox.network.ConnectionManager.server from instance method net.sf.firemox.ui.wizard.Server.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 194 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.ui.wizard.Wizard.indexAnswer isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.ui.wizard.Wizard.optionAnswer isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Write to static field net.sf.firemox.ui.wizard.Wizard.optionAnswer from instance method net.sf.firemox.ui.wizard.Wizard.actionPerformed(ActionEvent) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 153 |
| Write to static field net.sf.firemox.ui.wizard.Wizard.optionAnswer from instance method net.sf.firemox.ui.wizard.Wizard.validAnswer(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 213 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.ui.wizard.WizardImageIcon defines non-transient non-serializable instance field cardImage | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| net.sf.firemox.ui.wizard.WizardImageIcon is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class net.sf.firemox.ui.wizard.WizardTitle$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unwritten field: net.sf.firemox.xml.Options.arguments | CORRECTNESS | UWF_UNWRITTEN_FIELD | 64 |
| Unwritten field: net.sf.firemox.xml.Options.mdb | CORRECTNESS | UWF_UNWRITTEN_FIELD | 100 |
| Unwritten field: net.sf.firemox.xml.Options.debug | CORRECTNESS | UWF_UNWRITTEN_FIELD | 73 |
| Unwritten field: net.sf.firemox.xml.Options.force | CORRECTNESS | UWF_UNWRITTEN_FIELD | 82 |
| Unwritten field: net.sf.firemox.xml.Options.help | CORRECTNESS | UWF_UNWRITTEN_FIELD | 91 |
| Unwritten field: net.sf.firemox.xml.Options.noPayMana | CORRECTNESS | UWF_UNWRITTEN_FIELD | 127 |
| Unwritten field: net.sf.firemox.xml.Options.version | CORRECTNESS | UWF_UNWRITTEN_FIELD | 109 |
| Unwritten field: net.sf.firemox.xml.Options.xsdValidation | CORRECTNESS | UWF_UNWRITTEN_FIELD | 118 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 245 |
| Exception is caught when Exception is not thrown in net.sf.firemox.xml.XmlConfiguration.main(String[]) | STYLE | REC_CATCH_EXCEPTION | 474 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.xml.XmlDeckTranslator.convert(String) | STYLE | REC_CATCH_EXCEPTION | 69 |
| Write to static field net.sf.firemox.xml.XmlDeckTranslator.config from instance method net.sf.firemox.xml.XmlDeckTranslator.XmlDeckTranslator(String) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 50 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in net.sf.firemox.xml.XmlParser.XmlParser(boolean) | STYLE | REC_CATCH_EXCEPTION | 88 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Load of known null value in net.sf.firemox.xml.XmlParser$Handler.startElement(String, String, String, Attributes) | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 203 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from java.io.OutputStream to java.io.FileOutputStream in net.sf.firemox.xml.XmlTbs.updateMdb(String, OutputStream) | STYLE | BC_UNCONFIRMED_CAST | 166 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 180 |
| net.sf.firemox.xml.XmlTbs.cardPager isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.XmlTbs.currentActionIndex isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.XmlTbs.currentInEffect isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.XmlTbs.referencedAbilities isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 356 |
| net.sf.firemox.xml.XmlTbs.referencedActions isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 366 |
| net.sf.firemox.xml.XmlTbs.referencedNonMacroActions should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 371 |
| net.sf.firemox.xml.XmlTbs.referencedTest should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 361 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.xml.XmlTools.defaultOnMeTag isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.XmlTools.testCanBePreempted isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.XmlTools.aliasMap should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 735 |
| net.sf.firemox.xml.XmlTools.abilities isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 75 |
| net.sf.firemox.xml.XmlTools.zones isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 68 |
| Redundant nullcheck of messageBox, which is known to be non-null in net.sf.firemox.xml.XmlTools.getMessageType(String) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 726 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from java.io.OutputStream to java.io.FileOutputStream in net.sf.firemox.xml.action.Choice.buildMdb(XmlParser$Node, OutputStream) | STYLE | BC_UNCONFIRMED_CAST | 81 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.xml.action.Intlist.buildMdb(XmlParser$Node, OutputStream) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 85-87 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.xml.XmlTools.testCanBePreempted from instance method net.sf.firemox.xml.action.Target.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 138 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method net.sf.firemox.xml.action.Targetlist.buildMdb(XmlParser$Node, OutputStream) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 94-96 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.xml.expression.Counter.macroCounterTest isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Unwritten field: net.sf.firemox.xml.magic.Options.arguments | CORRECTNESS | UWF_UNWRITTEN_FIELD | 55 |
| Unwritten field: net.sf.firemox.xml.magic.Options.destination | CORRECTNESS | UWF_UNWRITTEN_FIELD | 82 |
| Unwritten field: net.sf.firemox.xml.magic.Options.oracleFile | CORRECTNESS | UWF_UNWRITTEN_FIELD | 73 |
| Unwritten field: net.sf.firemox.xml.magic.Options.help | CORRECTNESS | UWF_UNWRITTEN_FIELD | 64 |
| Unwritten field: net.sf.firemox.xml.magic.Options.version | CORRECTNESS | UWF_UNWRITTEN_FIELD | 91 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.xml.magic.Oracle2Xml.main(String[]) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 1328 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 179 |
| net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 82 |
| net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) invokes inefficient new String() constructor | PERFORMANCE | DM_STRING_VOID_CTOR | 1177 |
| Immediate dereference of the result of readLine() in net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) | STYLE | NP_IMMEDIATE_DEREFERENCE_OF_READLINE | 179 |
| Method net.sf.firemox.xml.magic.Oracle2Xml.writeCost(PrintWriter, String, String) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 1720 |
| Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.xml.magic.Oracle2Xml.serialize(File, File, File) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 94 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.xml.magic.Oracle2XmlNoRules.main(String[]) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 241 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 149 |
| net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 77 |
| Immediate dereference of the result of readLine() in net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) | STYLE | NP_IMMEDIATE_DEREFERENCE_OF_READLINE | 149 |
| Possible null pointer dereference in net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) due to return value of called method | STYLE | NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE | 149 |
| Write to static field net.sf.firemox.tools.MToolKit.tbsName from instance method net.sf.firemox.xml.magic.Oracle2XmlNoRules.serialize(File, File, File) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 89 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Activatedability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 70 |
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Activatedability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 72 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 70 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Replacementability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 106 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Replacementability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 89 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Systemability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 80 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Systemability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 65 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 694 |
| Method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) invokes toString() method on a String | PERFORMANCE | DM_STRING_TOSTRING | 241 |
| net.sf.firemox.xml.tbs.Tbs.referencedAbilities isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 799 |
| net.sf.firemox.xml.tbs.Tbs.referencedActions isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 809 |
| net.sf.firemox.xml.tbs.Tbs.referencedAttachments isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 824 |
| net.sf.firemox.xml.tbs.Tbs.referencedNonMacroActions isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 814 |
| net.sf.firemox.xml.tbs.Tbs.referencedTest isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 804 |
| net.sf.firemox.xml.tbs.Tbs.resolveReferences isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.xml.tbs.Tbs.macroActions should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 829 |
| net.sf.firemox.xml.tbs.Tbs.referencedNonMacroAttachments should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 819 |
| Redundant nullcheck of attributes, which is known to be non-null in net.sf.firemox.xml.tbs.Tbs.writeTaskPaneElement(XmlParser$Node, OutputStream) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 683 |
| Redundant nullcheck of elements, which is known to be non-null in net.sf.firemox.xml.tbs.Tbs.writeTaskPaneElement(XmlParser$Node, OutputStream) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 683 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.macroActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 88 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedAbilities from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 83 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 84 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedAttachments from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 85 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedNonMacroActions from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 86 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedNonMacroAttachments from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 87 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.referencedTest from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 82 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.resolveReferences from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 89 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 199 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 233 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 493 |
| Write to static field net.sf.firemox.xml.tbs.Tbs.resolveReferences from instance method net.sf.firemox.xml.tbs.Tbs.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 664 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 84 |
| Write to static field net.sf.firemox.xml.XmlTbs.currentInEffect from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 86 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 73 |
| Write to static field net.sf.firemox.xml.XmlTools.defaultOnMeTag from instance method net.sf.firemox.xml.tbs.Triggeredability.buildMdb(XmlParser$Node, OutputStream) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 91 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Class net.sf.firemox.zone.ExpandableZone defines non-transient non-serializable instance field zoneConfiguration | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| ExpandableZone.gatheredParent not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Comparison of String objects using == or != in net.sf.firemox.zone.PopupManager.actionPerformed(ActionEvent) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 173 |
| net.sf.firemox.zone.PopupManager.optionsMenu should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 286 |
| Write to static field net.sf.firemox.zone.PopupManager.triggerPlace from instance method net.sf.firemox.zone.PopupManager.mousePressed(MouseEvent, MZone) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 238 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenHighLevel(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 256 |
| Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenLowestLevel(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 321 |
| Write to static field net.sf.firemox.stack.StackManager.idHandedPlayer from instance method net.sf.firemox.zone.TriggeredBuffer.resolveHiddenNormalLevel(int) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 289 |
| Bug | Category | Details | Line |
|---|---|---|---|
| net.sf.firemox.zone.ZoneManager.expandedZone isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.zone.ZoneManager.side isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| net.sf.firemox.zone.ZoneManager.stack isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.mortbay.util.Password.obfuscate(String) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 82-83 |