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
995300

com.barteo.emulator.EmulatorContext

BugCategoryDetailsLinePriority

com.barteo.emulator.device.Device

BugCategoryDetailsLinePriority

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_EXIT765Medium
org.microemu.app.Common.startLauncher(MIDletContext) invokes System.exit(...), which shuts down the entire virtual machineBAD_PRACTICEDM_EXIT460Medium
Write to static field org.microemu.app.Common.instance from instance method new org.microemu.app.Common(EmulatorContext)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD133High
Write to static field org.microemu.app.Common.statusBarListener from instance method org.microemu.app.Common.setStatusBarListener(StatusBarListener)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD477High
Write to static field org.microemu.app.Common.launcher from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class)STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD903Medium
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_METHOD845Medium
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_METHOD841Medium
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_METHOD843Medium
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_METHOD847Medium
Method org.microemu.app.Common.loadJar(String, String, MIDletClassLoader) makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR615Medium

org.microemu.app.Common$1

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

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_STATIC270-271Medium
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.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_OBJECT139-146Medium
org.microemu.app.util.DeviceEntry defines equals and uses Object.hashCode()BAD_PRACTICEHE_EQUALS_USE_HASHCODE139-146Medium

org.microemu.app.util.FileRecordStoreManager

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

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_PRACTICE154Medium

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_FINAL52Medium

org.microemu.app.util.MIDletSystemProperties

BugCategoryDetailsLinePriority
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_STATIC214-225High
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_STATIC219-226High
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_CHECKED208Medium

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.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_EQUALS35-131Medium