FindBugs Bug Detector Report

The following document contains the results of FindBugs Report

FindBugs Version is 1.3.9

Threshold is medium

Effort is min

Summary

ClassesBugsErrorsMissing Classes
1328900

Files

ClassBugs
org.microemu.app.Main19
org.microemu.app.Main$121
org.microemu.app.capture.AnimatedGifEncoder1
org.microemu.app.capture.NeuQuant3
org.microemu.app.ui.swing.RecordStoreManagerDialog1
org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField1
org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField$IntegerDocument1
org.microemu.app.ui.swing.SwingDeviceComponent2
org.microemu.app.ui.swing.SwingDeviceComponent$MouseRepeatedTimerTask2
org.microemu.app.ui.swing.SwingDisplayComponent3
org.microemu.app.ui.swing.SwingLogConsoleDialog$31
org.microemu.app.ui.swing.SwingSelectDevicePanel4
org.microemu.app.ui.swing.SwingSelectDevicePanel$11
org.microemu.app.ui.swing.SwingSelectDevicePanel$21
org.microemu.app.ui.swing.XYConstraints1
org.microemu.app.ui.swing.logconsole.LogTextCaret1
org.microemu.applet.CookieRecordStoreManager9
org.microemu.applet.CookieRecordStoreManager$CookieContent2
org.microemu.applet.Main5
org.microemu.device.j2se.J2SEButton2
org.microemu.device.j2se.J2SEButtonDefaultKeyCodes3
org.microemu.device.j2se.J2SEDeviceButtonsHelper2
org.microemu.device.j2se.J2SEDeviceDisplay3
org.microemu.device.j2se.J2SEDisplayGraphics5
org.microemu.device.j2se.J2SEFontManager4
org.microemu.device.j2se.J2SEGraphicsSurface1
org.microemu.device.j2se.J2SEImmutableImage2
org.microemu.device.j2se.J2SEInputMethod2
org.microemu.device.j2se.J2SEMutableImage1
org.microemu.device.j2se.J2SESoftButton2
org.microemu.device.j2se.J2SESystemFont1
org.microemu.device.j2se.J2SETrueTypeFont1
org.microemu.device.j2se.RGBImageFilter1

org.microemu.app.Main

BugCategoryDetailsLinePriority
Dead store to midletString in org.microemu.app.Main.main(String[])STYLEDLS_DEAD_LOCAL_STORE1079Medium
org.microemu.app.Main$17 stored into non-transient field Main.componentListenerBAD_PRACTICESE_BAD_FIELD_STORE720Medium
org.microemu.app.Main$1 stored into non-transient field Main.emulatorContextBAD_PRACTICESE_BAD_FIELD_STORE179Medium
org.microemu.app.Main$11 stored into non-transient field Main.menuAboutListenerBAD_PRACTICESE_BAD_FIELD_STORE503Medium
org.microemu.app.Main$4 stored into non-transient field Main.menuCloseMidletListenerBAD_PRACTICESE_BAD_FIELD_STORE256Medium
org.microemu.app.Main$12 stored into non-transient field Main.menuExitListenerBAD_PRACTICESE_BAD_FIELD_STORE509Medium
org.microemu.app.Main$10 stored into non-transient field Main.menuLogConsoleListenerBAD_PRACTICESE_BAD_FIELD_STORE484Medium
org.microemu.app.Main$8 stored into non-transient field Main.menuMIDletNetworkConnectionListenerBAD_PRACTICESE_BAD_FIELD_STORE460Medium
org.microemu.app.Main$2 stored into non-transient field Main.menuOpenMIDletFileListenerBAD_PRACTICESE_BAD_FIELD_STORE218Medium
org.microemu.app.Main$3 stored into non-transient field Main.menuOpenMIDletURLListenerBAD_PRACTICESE_BAD_FIELD_STORE242Medium
org.microemu.app.Main$9 stored into non-transient field Main.menuRecordStoreManagerListenerBAD_PRACTICESE_BAD_FIELD_STORE467Medium
org.microemu.app.Main$5 stored into non-transient field Main.menuSaveForWebListenerBAD_PRACTICESE_BAD_FIELD_STORE262Medium
org.microemu.app.Main$14 stored into non-transient field Main.menuScaledDisplayListenerBAD_PRACTICESE_BAD_FIELD_STORE572Medium
org.microemu.app.Main$13 stored into non-transient field Main.menuSelectDeviceListenerBAD_PRACTICESE_BAD_FIELD_STORE538Medium
org.microemu.app.Main$6 stored into non-transient field Main.menuStartCaptureListenerBAD_PRACTICESE_BAD_FIELD_STORE382Medium
org.microemu.app.Main$7 stored into non-transient field Main.menuStopCaptureListenerBAD_PRACTICESE_BAD_FIELD_STORE447Medium
org.microemu.app.Main$16 stored into non-transient field Main.responseInterfaceListenerBAD_PRACTICESE_BAD_FIELD_STORE706Medium
org.microemu.app.Main$15 stored into non-transient field Main.statusBarListenerBAD_PRACTICESE_BAD_FIELD_STORE698Medium
org.microemu.app.Main$18 stored into non-transient field Main.windowListenerBAD_PRACTICESE_BAD_FIELD_STORE753Medium

org.microemu.app.Main$12

BugCategoryDetailsLinePriority
org.microemu.app.Main$12.actionPerformed(ActionEvent) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT534Medium

org.microemu.app.capture.AnimatedGifEncoder

BugCategoryDetailsLinePriority
Vacuous ior operation on AnimatedGifEncoder.java:[line 369] in org.microemu.app.capture.AnimatedGifEncoder.writeGraphicCtrlExt()STYLEINT_VACUOUS_BIT_OPERATION369Medium

org.microemu.app.capture.NeuQuant

BugCategoryDetailsLinePriority
new org.microemu.app.capture.NeuQuant(byte[], int, int) may expose internal representation by storing an externally mutable object into NeuQuant.thepictureMALICIOUS_CODEEI_EXPOSE_REP2114Medium
Computation of average could overflow in org.microemu.app.capture.NeuQuant.inxbuild()STYLEIM_AVERAGE_COMPUTATION_COULD_OVERFLOW184Medium

org.microemu.app.ui.swing.RecordStoreManagerDialog

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.RecordStoreManagerDialog$1 stored into non-transient field RecordStoreManagerDialog.recordStoreTypeChangeListenerBAD_PRACTICESE_BAD_FIELD_STORE81Medium

org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField

BugCategoryDetailsLinePriority
Should org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField be a _static_ inner class?PERFORMANCESIC_INNER_SHOULD_BE_STATIC44-60Medium

org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField$IntegerDocument

BugCategoryDetailsLinePriority
Potentially dangerous use of non-short-circuit logic in org.microemu.app.ui.swing.ResizeDeviceDisplayDialog$IntegerField$IntegerDocument.insertString(int, String, AttributeSet)STYLENS_DANGEROUS_NON_SHORT_CIRCUIT80High

org.microemu.app.ui.swing.SwingDeviceComponent

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.SwingDeviceComponent$1 stored into non-transient field SwingDeviceComponent.mouseListenerBAD_PRACTICESE_BAD_FIELD_STORE156Medium
org.microemu.app.ui.swing.SwingDeviceComponent$2 stored into non-transient field SwingDeviceComponent.mouseMotionListenerBAD_PRACTICESE_BAD_FIELD_STORE233Medium

org.microemu.app.ui.swing.SwingDeviceComponent$MouseRepeatedTimerTask

BugCategoryDetailsLinePriority
Incorrect lazy initialization and update of static field org.microemu.app.ui.swing.SwingDeviceComponent$MouseRepeatedTimerTask.task in org.microemu.app.ui.swing.SwingDeviceComponent$MouseRepeatedTimerTask.schedule(Component, J2SEButton, J2SEInputMethod)MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC118-121Medium
Unread field: org.microemu.app.ui.swing.SwingDeviceComponent$MouseRepeatedTimerTask.sourcePERFORMANCEURF_UNREAD_FIELD122Medium

org.microemu.app.ui.swing.SwingDisplayComponent

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.SwingDisplayComponent$1 stored into non-transient field SwingDisplayComponent.mouseListenerBAD_PRACTICESE_BAD_FIELD_STORE81Medium
org.microemu.app.ui.swing.SwingDisplayComponent$2 stored into non-transient field SwingDisplayComponent.mouseMotionListenerBAD_PRACTICESE_BAD_FIELD_STORE181Medium
org.microemu.app.ui.swing.SwingDisplayComponent$3 stored into non-transient field SwingDisplayComponent.mouseWheelListenerBAD_PRACTICESE_BAD_FIELD_STORE231Medium

org.microemu.app.ui.swing.SwingLogConsoleDialog$3

BugCategoryDetailsLinePriority
Write to static field org.microemu.log.StdOutAppender.enabled from instance method org.microemu.app.ui.swing.SwingLogConsoleDialog$3.actionPerformed(ActionEvent)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD125Medium

org.microemu.app.ui.swing.SwingSelectDevicePanel

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.SwingSelectDevicePanel$1 stored into non-transient field SwingSelectDevicePanel.btAddListenerBAD_PRACTICESE_BAD_FIELD_STORE81Medium
org.microemu.app.ui.swing.SwingSelectDevicePanel$3 stored into non-transient field SwingSelectDevicePanel.btDefaultListenerBAD_PRACTICESE_BAD_FIELD_STORE220Medium
org.microemu.app.ui.swing.SwingSelectDevicePanel$2 stored into non-transient field SwingSelectDevicePanel.btRemoveListenerBAD_PRACTICESE_BAD_FIELD_STORE189Medium
org.microemu.app.ui.swing.SwingSelectDevicePanel$4 stored into non-transient field SwingSelectDevicePanel.listSelectionListenerBAD_PRACTICESE_BAD_FIELD_STORE237Medium

org.microemu.app.ui.swing.SwingSelectDevicePanel$1

BugCategoryDetailsLinePriority
Method org.microemu.app.ui.swing.SwingSelectDevicePanel$1.actionPerformed(ActionEvent) makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR171Medium

org.microemu.app.ui.swing.SwingSelectDevicePanel$2

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.SwingSelectDevicePanel$2.actionPerformed(ActionEvent) ignores exceptional return value of java.io.File.delete()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE203Medium

org.microemu.app.ui.swing.XYConstraints

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.XYConstraints.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL107Medium

org.microemu.app.ui.swing.logconsole.LogTextCaret

BugCategoryDetailsLinePriority
org.microemu.app.ui.swing.logconsole.LogTextCaret doesn't override javax.swing.text.DefaultCaret.equals(Object)STYLEEQ_DOESNT_OVERRIDE_EQUALS37-51Medium

org.microemu.applet.CookieRecordStoreManager

BugCategoryDetailsLinePriority
Impossible downcast of toArray() result to String[] in org.microemu.applet.CookieRecordStoreManager.listRecordStores()CORRECTNESSBC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY153High
Dead store to format in new org.microemu.applet.CookieRecordStoreManager(Applet)STYLEDLS_DEAD_LOCAL_STORE77High
Load of known null value in org.microemu.applet.CookieRecordStoreManager.openRecordStore(String, boolean)STYLENP_LOAD_OF_KNOWN_NULL_VALUE187Medium
Read of unwritten field cookies in org.microemu.applet.CookieRecordStoreManager.deleteRecordStore(String)CORRECTNESSNP_UNWRITTEN_FIELD90Medium
Read of unwritten field cookies in org.microemu.applet.CookieRecordStoreManager.deleteStores()CORRECTNESSNP_UNWRITTEN_FIELD104Medium
Read of unwritten field cookies in org.microemu.applet.CookieRecordStoreManager.listRecordStores()CORRECTNESSNP_UNWRITTEN_FIELD153Medium
Read of unwritten field cookies in org.microemu.applet.CookieRecordStoreManager.openRecordStore(String, boolean)CORRECTNESSNP_UNWRITTEN_FIELD166Medium
Unread field: org.microemu.applet.CookieRecordStoreManager.appletPERFORMANCEURF_UNREAD_FIELD73Medium
Unwritten field: org.microemu.applet.CookieRecordStoreManager.cookiesCORRECTNESSUWF_UNWRITTEN_FIELD90Medium

org.microemu.applet.CookieRecordStoreManager$CookieContent

BugCategoryDetailsLinePriority
Invocation of toString on CookieRecordStoreManager$CookieContent.parts in org.microemu.applet.CookieRecordStoreManager$CookieContent.getParts()CORRECTNESSDMI_INVOKING_TOSTRING_ON_ARRAY310Medium
Should org.microemu.applet.CookieRecordStoreManager$CookieContent be a _static_ inner class?PERFORMANCESIC_INNER_SHOULD_BE_STATIC276-329Medium

org.microemu.applet.Main

BugCategoryDetailsLinePriority
org.microemu.applet.Main$1 stored into non-transient field Main.emulatorContextBAD_PRACTICESE_BAD_FIELD_STORE89Medium
org.microemu.util.MemoryRecordStoreManager stored into non-transient field Main.recordStoreManagerBAD_PRACTICESE_BAD_FIELD_STORE144Medium
Write to static field org.microemu.app.util.MIDletSystemProperties.applyToJavaSystemProperties from instance method org.microemu.applet.Main.init()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD136High
Write to static field org.microemu.app.util.MIDletResourceLoader.classLoader from instance method org.microemu.applet.Main.init()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD237Medium
Write to static field org.microemu.device.ui.EventDispatcher.maxFps from instance method org.microemu.applet.Main.init()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD231Medium

org.microemu.device.j2se.J2SEButton

BugCategoryDetailsLinePriority
org.microemu.device.j2se.J2SEButton.getKeyboardKeyCodes() may expose internal representation by returning J2SEButton.keyboardKeysMALICIOUS_CODEEI_EXPOSE_REP148Medium
new org.microemu.device.j2se.J2SEButton(int, String, Shape, int, String, String, Hashtable, boolean) may expose internal representation by storing an externally mutable object into J2SEButton.inputToCharsMALICIOUS_CODEEI_EXPOSE_REP2126Medium

org.microemu.device.j2se.J2SEButtonDefaultKeyCodes

BugCategoryDetailsLinePriority
Method org.microemu.device.j2se.J2SEButtonDefaultKeyCodes.code(ButtonName, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR107Medium
Method org.microemu.device.j2se.J2SEButtonDefaultKeyCodes.code(ButtonName, int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR115Medium
Method org.microemu.device.j2se.J2SEButtonDefaultKeyCodes.getBackwardCompatibleName(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR120Medium

org.microemu.device.j2se.J2SEDeviceButtonsHelper

BugCategoryDetailsLinePriority
Method org.microemu.device.j2se.J2SEDeviceButtonsHelper.createDeviceInformation(Device) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR121Medium
Method org.microemu.device.j2se.J2SEDeviceButtonsHelper.getButton(KeyEvent) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR90Medium

org.microemu.device.j2se.J2SEDeviceDisplay

BugCategoryDetailsLinePriority
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEMutableImage in org.microemu.device.j2se.J2SEDeviceDisplay.createImage(Image)STYLEBC_UNCONFIRMED_CAST273Medium
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEMutableImage in org.microemu.device.j2se.J2SEDeviceDisplay.createImage(Image, int, int, int, int, int)STYLEBC_UNCONFIRMED_CAST344Medium
Unused field: org.microemu.device.j2se.J2SEDeviceDisplay.gameCanvasGraphicsPERFORMANCEUUF_UNUSED_FIELDNot availableMedium

org.microemu.device.j2se.J2SEDisplayGraphics

BugCategoryDetailsLinePriority
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEImmutableImage in org.microemu.device.j2se.J2SEDisplayGraphics.drawImage(Image, int, int, int)STYLEBC_UNCONFIRMED_CAST193Medium
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEMutableImage in org.microemu.device.j2se.J2SEDisplayGraphics.drawImage(Image, int, int, int)STYLEBC_UNCONFIRMED_CAST191Medium
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEImmutableImage in org.microemu.device.j2se.J2SEDisplayGraphics.drawRegion(Image, int, int, int, int, int, int, int, int)STYLEBC_UNCONFIRMED_CAST282Medium
Unchecked/unconfirmed cast from javax.microedition.lcdui.Image to org.microemu.device.j2se.J2SEMutableImage in org.microemu.device.j2se.J2SEDisplayGraphics.drawRegion(Image, int, int, int, int, int, int, int, int)STYLEBC_UNCONFIRMED_CAST280Medium
Method org.microemu.device.j2se.J2SEDisplayGraphics.setColor(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR102Medium

org.microemu.device.j2se.J2SEFontManager

BugCategoryDetailsLinePriority
Check to see if ((...) & 0) == 0 in org.microemu.device.j2se.J2SEFontManager.getFont(Font)CORRECTNESSBIT_AND_ZZ69High
Method org.microemu.device.j2se.J2SEFontManager.getFont(Font) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR57Medium
Method org.microemu.device.j2se.J2SEFontManager.setFont(String, String, String, Font) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR189Medium
Vacuous ior operation on key in org.microemu.device.j2se.J2SEFontManager.setFont(String, String, String, Font)STYLEINT_VACUOUS_BIT_OPERATION169Medium

org.microemu.device.j2se.J2SEGraphicsSurface

BugCategoryDetailsLinePriority
org.microemu.device.j2se.J2SEGraphicsSurface.getImageData() may expose internal representation by returning J2SEGraphicsSurface.imageDataMALICIOUS_CODEEI_EXPOSE_REP84Medium

org.microemu.device.j2se.J2SEImmutableImage

BugCategoryDetailsLinePriority
Wait not in loop in org.microemu.device.j2se.J2SEImmutableImage.getHeight()MT_CORRECTNESSWA_NOT_IN_LOOP81Medium
Wait not in loop in org.microemu.device.j2se.J2SEImmutableImage.getWidth()MT_CORRECTNESSWA_NOT_IN_LOOP121Medium

org.microemu.device.j2se.J2SEInputMethod

BugCategoryDetailsLinePriority
Method org.microemu.device.j2se.J2SEInputMethod.buttonPressed(J2SEButton, char) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR354Medium
Method org.microemu.device.j2se.J2SEInputMethod.buttonReleased(J2SEButton, char) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR410Medium

org.microemu.device.j2se.J2SEMutableImage

BugCategoryDetailsLinePriority
org.microemu.device.j2se.J2SEMutableImage.getData() may expose internal representation by returning J2SEMutableImage.pixelsMALICIOUS_CODEEI_EXPOSE_REP101Medium

org.microemu.device.j2se.J2SESoftButton

BugCategoryDetailsLinePriority
Method org.microemu.device.j2se.J2SESoftButton.addCommandType(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR226Medium
org.microemu.device.j2se.J2SESoftButton.RIGHT isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL47High

org.microemu.device.j2se.J2SESystemFont

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.microemu.device.j2se.J2SESystemFont.initialized; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC62Medium

org.microemu.device.j2se.J2SETrueTypeFont

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.microemu.device.j2se.J2SETrueTypeFont.initialized; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC67Medium

org.microemu.device.j2se.RGBImageFilter

BugCategoryDetailsLinePriority