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
965800

nanoxml.XMLElement

BugCategoryDetailsLinePriority
Switch statement found in nanoxml.XMLElement.scanWhitespace(StringBuffer) where one case falls through to the next caseSTYLESF_SWITCH_FALLTHROUGH2783-2786Medium

org.microemu.app.Common

BugCategoryDetailsLinePriority
org.microemu.app.Common.initParams(List, DeviceEntry, Class) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT785Medium
org.microemu.app.Common.startLauncher(MIDletContext) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT466Medium
Incorrect lazy initialization of static field org.microemu.app.Common.launcher in org.microemu.app.Common.initMIDlet(boolean)MT_CORRECTNESSLI_LAZY_INIT_STATIC1050-1052Medium
Write to static field org.microemu.app.Common.instance from instance method new org.microemu.app.Common(EmulatorContext)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD136High
Write to static field org.microemu.app.Common.statusBarListener from instance method org.microemu.app.Common.setStatusBarListener(StatusBarListener)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD482High
Write to static field org.microemu.app.classloader.MIDletClassLoader.enhanceCatchBlock from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD865Medium
Write to static field org.microemu.app.classloader.MIDletClassLoader.traceClassLoading from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD861Medium
Write to static field org.microemu.app.classloader.MIDletClassLoader.traceSystemClassLoading from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD863Medium
Write to static field org.microemu.log.StdOutAppender.enabled from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD867Medium
Method org.microemu.app.Common.loadJar(String, String, MIDletClassLoader) makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR623Medium

org.microemu.app.Common$1

BugCategoryDetailsLinePriority
org.microemu.app.Common$1.run() invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT333Medium
Unconditional wait in org.microemu.app.Common$1.run()MT_CORRECTNESSUW_UNCOND_WAIT314Medium

org.microemu.app.Config

BugCategoryDetailsLinePriority
Incorrect lazy initialization and update of static field org.microemu.app.Config.resizableDevice in org.microemu.app.Config.getDeviceEntries()MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC268-269Medium
org.microemu.app.Config.loadConfigFile(String) may fail to close streamBAD_PRACTICEOS_OPEN_STREAM137Medium
org.microemu.app.Config.saveConfig() ignores exceptional return value of java.io.File.mkdirs()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE164Medium
Method org.microemu.app.Config.loadConfigFile(String) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION141Medium

org.microemu.app.classloader.ChangeCallsClassVisitor

BugCategoryDetailsLinePriority
Method org.microemu.app.classloader.ChangeCallsClassVisitor.<static initializer>() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR53Medium
Method org.microemu.app.classloader.ChangeCallsClassVisitor.visit(int, int, String, String, String, String[]) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR67Medium

org.microemu.app.classloader.MIDletClassLoader

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.microemu.app.classloader.MIDletClassLoader.delegatingToParent; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC116Medium
org.microemu.app.classloader.MIDletClassLoader.enhanceCatchBlock isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL65Medium
org.microemu.app.classloader.MIDletClassLoader.traceClassLoading isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL61Medium
org.microemu.app.classloader.MIDletClassLoader.traceSystemClassLoading isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL63Medium
org.microemu.app.classloader.MIDletClassLoader.instrumentMIDletClasses isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL59Medium

org.microemu.app.util.DeviceEntry

BugCategoryDetailsLinePriority
org.microemu.app.util.DeviceEntry defines equals(DeviceEntry) method and uses Object.equals(Object)CORRECTNESSEQ_SELF_USE_OBJECT106-113Medium
org.microemu.app.util.DeviceEntry defines equals and uses Object.hashCode()BAD_PRACTICEHE_EQUALS_USE_HASHCODE106-113Medium
Unread field: org.microemu.app.util.DeviceEntry.classNamePERFORMANCEURF_UNREAD_FIELD70Medium
Unread field: org.microemu.app.util.DeviceEntry.emulatorContextPERFORMANCEURF_UNREAD_FIELD71Medium

org.microemu.app.util.FileRecordStoreManager

BugCategoryDetailsLinePriority
Dead store to recordStoreImpl in org.microemu.app.util.FileRecordStoreManager.deleteRecordStore(String)STYLEDLS_DEAD_LOCAL_STORE148Medium

org.microemu.app.util.FileRecordStoreManager$2

BugCategoryDetailsLinePriority
org.microemu.app.util.FileRecordStoreManager$2.run() ignores exceptional return value of java.io.File.delete()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE156Medium

org.microemu.app.util.MIDletResourceLoader

BugCategoryDetailsLinePriority
org.microemu.app.util.MIDletResourceLoader.classLoader isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINALNot availableMedium
org.microemu.app.util.MIDletResourceLoader.traceResourceLoading isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL51Medium

org.microemu.app.util.MIDletSystemProperties

BugCategoryDetailsLinePriority
Method org.microemu.app.util.MIDletSystemProperties.setPermission(String, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR207Medium
Incorrect lazy initialization and update of static field org.microemu.app.util.MIDletSystemProperties.systemPropertiesDevice in org.microemu.app.util.MIDletSystemProperties.setDevice(Device)MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC213-224High
Incorrect lazy initialization and update of static field org.microemu.app.util.MIDletSystemProperties.systemPropertiesPreserve in org.microemu.app.util.MIDletSystemProperties.setDevice(Device)MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC218-225High
org.microemu.app.util.MIDletSystemProperties.applyToJavaSystemProperties isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL55Medium

org.microemu.app.util.MIDletThread

BugCategoryDetailsLinePriority
org.microemu.app.util.MIDletThread.graceTerminationPeriod isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL45Medium

org.microemu.app.util.MIDletTimer

BugCategoryDetailsLinePriority
new org.microemu.app.util.MIDletTimer() invokes org.microemu.app.util.MIDletThread.start()MT_CORRECTNESSSC_START_IN_CTOR71Medium

org.microemu.app.util.MidletURLReference

BugCategoryDetailsLinePriority
org.microemu.app.util.MidletURLReference defines equals and uses Object.hashCode()BAD_PRACTICEHE_EQUALS_USE_HASHCODE64-67High

org.microemu.app.util.ResURLStreamHandler

BugCategoryDetailsLinePriority
new org.microemu.app.util.ResURLStreamHandler(Hashtable) may expose internal representation by storing an externally mutable object into ResURLStreamHandler.entriesMALICIOUS_CODEEI_EXPOSE_REP241Medium

org.microemu.cldc.datagram.DatagramImpl

BugCategoryDetailsLinePriority
org.microemu.cldc.datagram.DatagramImpl.readFully(byte[], int, int) ignores result of java.io.DataInputStream.read(byte[], int, int)BAD_PRACTICERR_NOT_CHECKED212Medium

org.microemu.cldc.http.Connection

BugCategoryDetailsLinePriority
org.microemu.cldc.http.Connection.allowNetworkConnection should be package protectedMALICIOUS_CODEMS_PKGPROTECT47Medium

org.microemu.cldc.https.Connection

BugCategoryDetailsLinePriority

org.microemu.cldc.socket.ServerSocketConnection

BugCategoryDetailsLinePriority

org.microemu.cldc.socket.SocketConnection

BugCategoryDetailsLinePriority

org.microemu.device.impl.ButtonDetaultDeviceKeyCodes

BugCategoryDetailsLinePriority
Method org.microemu.device.impl.ButtonDetaultDeviceKeyCodes.code(ButtonName, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR109Medium
Method org.microemu.device.impl.ButtonDetaultDeviceKeyCodes.code(ButtonName, int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR114Medium
Method org.microemu.device.impl.ButtonDetaultDeviceKeyCodes.getButtonNameByGameAction(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) insteadPERFORMANCEDM_NUMBER_CTOR71Medium

org.microemu.device.impl.DeviceImpl

BugCategoryDetailsLinePriority
org.microemu.device.impl.DeviceImpl.parseBoolean(String) invokes inefficient new String(String) constructorPERFORMANCEDM_STRING_CTOR639Medium
Incorrect lazy initialization and update of static field org.microemu.device.impl.DeviceImpl.specialInheritanceAttributeSet in org.microemu.device.impl.DeviceImpl.inheritanceConstInit()MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC727-728Medium
Write to static field org.microemu.device.impl.DeviceImpl.context from instance method org.microemu.device.impl.DeviceImpl.init(EmulatorContext, String)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD157High

org.microemu.device.impl.InputMethodImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.microemu.device.impl.InputMethodImpl.resetKey; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC70Medium
Naked notify in org.microemu.device.impl.InputMethodImpl.dispose()MT_CORRECTNESSNN_NAKED_NOTIFY61Medium
new org.microemu.device.impl.InputMethodImpl() invokes Thread.start()MT_CORRECTNESSSC_START_IN_CTOR54Medium

org.microemu.log.StdOutAppender

BugCategoryDetailsLinePriority
org.microemu.log.StdOutAppender.enabled isn't final and can't be protected from malicious code MALICIOUS_CODEMS_CANNOT_BE_FINAL37Medium

org.microemu.microedition.io.ConnectorImpl

BugCategoryDetailsLinePriority
org.microemu.microedition.io.ConnectorImpl.debugConnectionInvocations isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL57Medium

org.microemu.util.JadProperties

BugCategoryDetailsLinePriority
org.microemu.util.JadProperties doesn't override java.util.jar.Manifest.equals(Object)STYLEEQ_DOESNT_OVERRIDE_EQUALS40-199Medium