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 |
|---|---|---|---|
| 482 | 75 | 0 | 0 |
| Bug | Category | Details | Line |
|---|---|---|---|
| VERY confusing to have methods com.barteo.emulator.device.Device.init(EmulatorContext, String) and org.microemu.device.impl.DeviceImpl.init(EmulatorContext, String) | CORRECTNESS | NM_VERY_CONFUSING | 42-43 |
| VERY confusing to have methods com.barteo.emulator.device.Device.init(EmulatorContext) and org.microemu.device.impl.DeviceImpl.init(EmulatorContext) | CORRECTNESS | NM_VERY_CONFUSING | 35-36 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1184 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1241 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1746 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1613 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1675 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1457 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 1518 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 2362 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 693 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 829 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 761 |
| Comparison of String parameter using == or != in nanoxml.XMLElement.getChild(String, String) | BAD_PRACTICE | ES_COMPARING_PARAMETER_STRING_WITH_EQ | 1024 |
| Switch statement found in nanoxml.XMLElement.scanWhitespace(StringBuffer) where one case falls through to the next case | STYLE | SF_SWITCH_FALLTHROUGH | 2738-2741 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 737 |
| org.microemu.app.Common.initParams(List, DeviceEntry, Class) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 698 |
| org.microemu.app.Common.createExtensionsClassLoader(URL[]) creates a org.microemu.app.classloader.ExtensionsClassLoader classloader, which should be performed within a doPrivileged block | BAD_PRACTICE | DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED | 861 |
| Redundant nullcheck of clConfig, which is known to be non-null in org.microemu.app.Common.initParams(List, DeviceEntry, Class) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 724 |
| Write to static field org.microemu.app.Common.instance from instance method org.microemu.app.Common.Common(EmulatorContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 121 |
| Write to static field org.microemu.app.Common.launcher from instance method org.microemu.app.Common.Common(EmulatorContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 125 |
| 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 | 442 |
| Write to static field org.microemu.app.Common.launcher from instance method org.microemu.app.Common.startLauncher(MIDletContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 430 |
| Common.mIDletClassLoaderConfig not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.app.Common$1.run() invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 312 |
| Method org.microemu.app.Common$1.1(Common, String, Common, String, boolean) creates a thread using the default empty run method | MT_CORRECTNESS | DM_USELESS_THREAD | 244 |
| Unconditional wait in org.microemu.app.Common$1.run() | MT_CORRECTNESS | UW_UNCOND_WAIT | 293 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 469 |
| org.microemu.app.Config.loadConfigFile(String) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 130 |
| org.microemu.app.Config.loadConfigFile(String) ignores result of java.io.InputStream.read(byte[]) | BAD_PRACTICE | RR_NOT_CHECKED | 133 |
| Method org.microemu.app.Config.loadConfigFile(String) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 134 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Should org.microemu.app.classloader.ClassPreprocessor.instrument(InputStream, InstrumentationConfig) return a zero length array rather than null? | STYLE | PZLA_PREFER_ZERO_LENGTH_ARRAYS | 47 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to maxClassSizeSize in org.microemu.app.classloader.MIDletClassLoader.findClass(String) | STYLE | DLS_DEAD_LOCAL_STORE | 375 |
| org.microemu.app.classloader.MIDletClassLoader.enhanceCatchBlock isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 61 |
| org.microemu.app.classloader.MIDletClassLoader.instrumentMIDletClasses isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 55 |
| org.microemu.app.classloader.MIDletClassLoader.traceClassLoading isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 57 |
| org.microemu.app.classloader.MIDletClassLoader.traceSystemClassLoading isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 59 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class org.microemu.app.classloader.MIDletClassLoader$2 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.app.util.DeviceEntry defines equals(DeviceEntry) method and uses Object.equals(Object) | BAD_PRACTICE | EQ_SELF_USE_OBJECT | 134-141 |
| org.microemu.app.util.DeviceEntry defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 134-141 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to recordStoreImpl in org.microemu.app.util.FileRecordStoreManager.deleteRecordStore(String) | STYLE | DLS_DEAD_LOCAL_STORE | 94 |
| org.microemu.app.util.FileRecordStoreManager.loadFromDiskSecure(File) may fail to close stream on exception | BAD_PRACTICE | OS_OPEN_STREAM_EXCEPTION_PATH | 203 |
| org.microemu.app.util.FileRecordStoreManager.saveToDiskSecure(File, RecordStoreImpl) may fail to close stream on exception | BAD_PRACTICE | OS_OPEN_STREAM_EXCEPTION_PATH | 239 |
| Should org.microemu.app.util.FileRecordStoreManager.listRecordStores() return a zero length array rather than null? | STYLE | PZLA_PREFER_ZERO_LENGTH_ARRAYS | 148 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class org.microemu.app.util.FileRecordStoreManager$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| 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 |
| org.microemu.app.util.MIDletResourceLoader.traceResourceLoading isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 46 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.app.util.MIDletSystemProperties.applyToJavaSystemProperties isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 50 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.microemu.app.util.MIDletThread.MIDletThread() creates a thread using the default empty run method | MT_CORRECTNESS | DM_USELESS_THREAD | 57 |
| org.microemu.app.util.MIDletThread.graceTerminationPeriod isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 40 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.app.util.MidletURLReference defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 59-62 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.app.util.ResURLStreamHandler.ResURLStreamHandler(Hashtable) may expose internal representation by storing an externally mutable object into ResURLStreamHandler.entries | MALICIOUS_CODE | EI_EXPOSE_REP2 | 36 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Connection.socket not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.cldc.datagram.DatagramImpl.readFully(byte[], int, int) ignores result of java.io.DataInputStream.read(byte[], int, int) | BAD_PRACTICE | RR_NOT_CHECKED | 203 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.cldc.http.Connection.allowNetworkConnection should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 42 |
| Confusing to have methods org.microemu.cldc.http.Connection.getURL() and org.microemu.app.util.MidletURLReference.getUrl() | BAD_PRACTICE | NM_CONFUSING | 73-77 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Should org.microemu.cldc.ssl.Connection$1.getAcceptedIssuers() return a zero length array rather than null? | STYLE | PZLA_PREFER_ZERO_LENGTH_ARRAYS | 64 |
| The class org.microemu.cldc.ssl.Connection$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 92 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 579 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 639 |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 444 |
| org.microemu.device.impl.DeviceImpl.parseBoolean(String) invokes inefficient new String(String) constructor | PERFORMANCE | DM_STRING_CTOR | 639 |
| Private method org.microemu.device.impl.DeviceImpl.saveDevice(XMLElement) is never called | PERFORMANCE | UPM_UNCALLED_PRIVATE_METHOD | 692-703 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.microemu.device.impl.InputMethodImpl.filterConstraints(char[]) uses the same code for two switch clauses | STYLE | DB_DUPLICATE_SWITCH_CLAUSES | 151 |
| Inconsistent synchronization of org.microemu.device.impl.InputMethodImpl.lastButton; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 88 |
| Inconsistent synchronization of org.microemu.device.impl.InputMethodImpl.resetKey; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 65 |
| Naked notify in org.microemu.device.impl.InputMethodImpl.dispose() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 56 |
| Using notify rather than notifyAll in org.microemu.device.impl.InputMethodImpl.dispose() | MT_CORRECTNESS | NO_NOTIFY_NOT_NOTIFYALL | 56 |
| org.microemu.device.impl.InputMethodImpl.InputMethodImpl() invokes java.lang.Thread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 49 |
| Unconditional wait in org.microemu.device.impl.InputMethodImpl.run() | MT_CORRECTNESS | UW_UNCOND_WAIT | 67 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store of null to xtemp in org.microemu.device.impl.Polygon.addPoint(int, int) | STYLE | DLS_DEAD_LOCAL_STORE_OF_NULL | 105 |
| Dead store of null to ytemp in org.microemu.device.impl.Polygon.addPoint(int, int) | STYLE | DLS_DEAD_LOCAL_STORE_OF_NULL | 108 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.log.StdOutAppender.enabled isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 32 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.microemu.microedition.io.ConnectorImpl.debugConnectionInvocations isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 52 |