The following document contains the results of FindBugs Report
FindBugs Version is 1.3.9
Threshold is medium
Effort is min
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 99 | 53 | 0 | 0 |
| Bug | Category | Details | Line | Priority |
|---|
| Bug | Category | Details | Line | Priority |
|---|
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Switch statement found in nanoxml.XMLElement.scanWhitespace(StringBuffer) where one case falls through to the next case | STYLE | SF_SWITCH_FALLTHROUGH | 2783-2786 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.Common.initParams(List, DeviceEntry, Class) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 765 | Medium |
| org.microemu.app.Common.startLauncher(MIDletContext) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 460 | Medium |
| Write to static field org.microemu.app.Common.instance from instance method new org.microemu.app.Common(EmulatorContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 133 | High |
| Write to static field org.microemu.app.Common.statusBarListener from instance method org.microemu.app.Common.setStatusBarListener(StatusBarListener) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 477 | High |
| Write to static field org.microemu.app.Common.launcher from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 903 | Medium |
| Write to static field org.microemu.app.classloader.MIDletClassLoader.enhanceCatchBlock from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 845 | Medium |
| Write to static field org.microemu.app.classloader.MIDletClassLoader.traceClassLoading from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 841 | Medium |
| Write to static field org.microemu.app.classloader.MIDletClassLoader.traceSystemClassLoading from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 843 | Medium |
| Write to static field org.microemu.log.StdOutAppender.enabled from instance method org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 847 | Medium |
| Method org.microemu.app.Common.loadJar(String, String, MIDletClassLoader) makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 615 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.Common$1.run() invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 325 | Medium |
| Unconditional wait in org.microemu.app.Common$1.run() | MT_CORRECTNESS | UW_UNCOND_WAIT | 306 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Incorrect lazy initialization and update of static field org.microemu.app.Config.resizableDevice in org.microemu.app.Config.getDeviceEntries() | MT_CORRECTNESS | LI_LAZY_INIT_UPDATE_STATIC | 270-271 | Medium |
| org.microemu.app.Config.loadConfigFile(String) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 137 | Medium |
| org.microemu.app.Config.saveConfig() ignores exceptional return value of java.io.File.mkdirs() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 164 | Medium |
| Method org.microemu.app.Config.loadConfigFile(String) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 141 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of org.microemu.app.classloader.MIDletClassLoader.delegatingToParent; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 116 | Medium |
| org.microemu.app.classloader.MIDletClassLoader.enhanceCatchBlock isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 65 | Medium |
| org.microemu.app.classloader.MIDletClassLoader.traceClassLoading isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 61 | Medium |
| org.microemu.app.classloader.MIDletClassLoader.traceSystemClassLoading isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 63 | Medium |
| org.microemu.app.classloader.MIDletClassLoader.instrumentMIDletClasses isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 59 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.util.DeviceEntry defines equals(DeviceEntry) method and uses Object.equals(Object) | CORRECTNESS | EQ_SELF_USE_OBJECT | 139-146 | Medium |
| org.microemu.app.util.DeviceEntry defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 139-146 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to recordStoreImpl in org.microemu.app.util.FileRecordStoreManager.deleteRecordStore(String) | STYLE | DLS_DEAD_LOCAL_STORE | 146 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.util.FileRecordStoreManager$2.run() ignores exceptional return value of java.io.File.delete() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 154 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.util.MIDletResourceLoader.classLoader isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | Not available | Medium |
| org.microemu.app.util.MIDletResourceLoader.traceResourceLoading isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 52 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Incorrect lazy initialization and update of static field org.microemu.app.util.MIDletSystemProperties.systemPropertiesDevice in org.microemu.app.util.MIDletSystemProperties.setDevice(Device) | MT_CORRECTNESS | LI_LAZY_INIT_UPDATE_STATIC | 214-225 | High |
| Incorrect lazy initialization and update of static field org.microemu.app.util.MIDletSystemProperties.systemPropertiesPreserve in org.microemu.app.util.MIDletSystemProperties.setDevice(Device) | MT_CORRECTNESS | LI_LAZY_INIT_UPDATE_STATIC | 219-226 | High |
| org.microemu.app.util.MIDletSystemProperties.applyToJavaSystemProperties isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 55 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.util.MIDletThread.graceTerminationPeriod isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 45 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.microemu.app.util.MIDletTimer() invokes org.microemu.app.util.MIDletThread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 71 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.app.util.MidletURLReference defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 64-67 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.microemu.app.util.ResURLStreamHandler(Hashtable) may expose internal representation by storing an externally mutable object into ResURLStreamHandler.entries | MALICIOUS_CODE | EI_EXPOSE_REP2 | 41 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.cldc.datagram.DatagramImpl.readFully(byte[], int, int) ignores result of java.io.DataInputStream.read(byte[], int, int) | BAD_PRACTICE | RR_NOT_CHECKED | 208 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.cldc.http.Connection.allowNetworkConnection should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 47 | Medium |
| Bug | Category | Details | Line | Priority |
|---|
| Bug | Category | Details | Line | Priority |
|---|
| Bug | Category | Details | Line | Priority |
|---|
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.device.impl.DeviceImpl.parseBoolean(String) invokes inefficient new String(String) constructor | PERFORMANCE | DM_STRING_CTOR | 639 | Medium |
| Incorrect lazy initialization and update of static field org.microemu.device.impl.DeviceImpl.specialInheritanceAttributeSet in org.microemu.device.impl.DeviceImpl.inheritanceConstInit() | MT_CORRECTNESS | LI_LAZY_INIT_UPDATE_STATIC | 727-728 | Medium |
| Write to static field org.microemu.device.impl.DeviceImpl.context from instance method org.microemu.device.impl.DeviceImpl.init(EmulatorContext, String) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 157 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of org.microemu.device.impl.InputMethodImpl.resetKey; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 70 | Medium |
| Naked notify in org.microemu.device.impl.InputMethodImpl.dispose() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 61 | Medium |
| new org.microemu.device.impl.InputMethodImpl() invokes Thread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 54 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.log.StdOutAppender.enabled isn't final and can't be protected from malicious code | MALICIOUS_CODE | MS_CANNOT_BE_FINAL | 37 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.microedition.io.ConnectorImpl.debugConnectionInvocations isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 57 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.microemu.util.JadProperties doesn't override java.util.jar.Manifest.equals(Object) | STYLE | EQ_DOESNT_OVERRIDE_EQUALS | 35-131 | Medium |