# FindBugs Report

## Project Information

Project:

FindBugs version: 1.3.9

Code analyzed:

- C:\cygwin\home\rsigal\workspace.new\JBossRemoting-2.x\output\lib\jboss-remoting.jar

## Metrics

32630 lines of code analyzed, in 785 classes, in 85 packages.

Metric | Total | Density*
--- | --- | ---
High Priority Warnings | 44 | 1.35
Medium Priority Warnings | 281 | 8.61
Total Warnings | 325 | 9.96

(* Defects per Thousand lines of non-commenting source statements)

## Contents

- Bad practice Warnings
- Correctness Warnings
- Experimental Warnings
- Malicious code vulnerability Warnings
- Multithreaded correctness Warnings
- Performance Warnings
- Dodgy Warnings
- Details

# Summary

Warning Type | Number
--- | ---
Bad practice Warnings | 36
Correctness Warnings | 30
Experimental Warnings | 2
Malicious code vulnerability Warnings | 69
Multithreaded correctness Warnings | 34
Performance Warnings | 124
Dodgy Warnings | 30
Total | 325

# Warnings

Click on a warning row to see full context information.

## Bad practice Warnings

Code | Warning
--- | ---
BC | Random object created and used only once in org.jboss.remoting.transport.PortUtil.getRandomStartingPort()
| Bug type DMI_RANDOM_USED_ONLY_ONCE (click for details) In class org.jboss.remoting.transport.PortUtil In method org.jboss.remoting.transport.PortUtil.getRandomStartingPort() Called method java.util.Random.nextInt(int) At PortUtil.java:[line 183]
BC | Random object created and used only once in org.jboss.remoting.transporter.DefaultLoadBalancer.selectServer(ArrayList)
| Bug type DMI_RANDOM_USED_ONLY_ONCE (click for details) In class org.jboss.remoting.transporter.DefaultLoadBalancer In method org.jboss.remoting.transporter.DefaultLoadBalancer.selectServer(ArrayList) Called method java.util.Random.nextInt(int) At DefaultLoadBalancer.java:[line 20]
Dm | new org.jboss.remoting.samples.chat.client.Chat(String[]) invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.chat.client.Chat In method new org.jboss.remoting.samples.chat.client.Chat(String[]) At Chat.java:[line 54]
Dm | new org.jboss.remoting.samples.chat.server.ChatManager() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.chat.server.ChatManager In method new org.jboss.remoting.samples.chat.server.ChatManager() At ChatManager.java:[line 51]
Dm | org.jboss.remoting.samples.chat.server.ChatManager.initialize() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.chat.server.ChatManager In method org.jboss.remoting.samples.chat.server.ChatManager.initialize() At ChatManager.java:[line 72] Another occurrence at ChatManager.java:[line 76]
Dm | org.jboss.remoting.samples.chat.server.ChatManagerLauncher.launchButton_actionPerformed(ActionEvent) invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.chat.server.ChatManagerLauncher In method org.jboss.remoting.samples.chat.server.ChatManagerLauncher.launchButton_actionPerformed(ActionEvent) At ChatManagerLauncher.java:[line 102]
Dm | org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient.runPrimeScenario() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient.runPrimeScenario() At PrimeScenarioExampleClient.java:[line 66]
Dm | org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient$AsynchronousThread.run() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient$AsynchronousThread In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient$AsynchronousThread.run() At PrimeScenarioExampleClient.java:[line 102]
Dm | org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer.runPrimeScenario() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer.runPrimeScenario() At PrimeScenarioExampleServer.java:[line 74]
Dm | org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread.run() invokes System.exit(...), which shuts down the entire virtual machine
| Bug type DM_EXIT (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread.run() At PrimeScenarioExampleServer.java:[line 110]
ES | Comparison of String objects using == or != in org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.rule2(String, int)
| Bug type ES_COMPARING_STRINGS_WITH_EQ (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.rule2(String, int) Actual type String At MultiplexServerInvoker.java:[line 979]
HE | org.jboss.remoting.InvokerRegistry$ClientInvokerHolder defines equals and uses Object.hashCode()
| Bug type HE_EQUALS_USE_HASHCODE (click for details) In class org.jboss.remoting.InvokerRegistry$ClientInvokerHolder In method org.jboss.remoting.InvokerRegistry$ClientInvokerHolder.equals(Object) At InvokerRegistry.java:[lines 767-785]
HE | org.jboss.remoting.samples.http.ComplexObject defines equals and uses Object.hashCode()
| Bug type HE_EQUALS_USE_HASHCODE (click for details) In class org.jboss.remoting.samples.http.ComplexObject In method org.jboss.remoting.samples.http.ComplexObject.equals(Object) At ComplexObject.java:[lines 72-86]
Nm | Class org.jboss.remoting.samples.transporter.complex.NoDoctorAvailableException is not derived from an Exception, even though it is named as such
| Bug type NM_CLASS_NOT_EXCEPTION (click for details) In class org.jboss.remoting.samples.transporter.complex.NoDoctorAvailableException At NoDoctorAvailableException.java:[lines 10-11]
NP | org.jboss.remoting.network.NetworkInstance.equals(Object) does not check for null argument
| Bug type NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT (click for details) In class org.jboss.remoting.network.NetworkInstance In method org.jboss.remoting.network.NetworkInstance.equals(Object) Local variable named obj At NetworkInstance.java:[line 104]
NP | org.jboss.remoting.transport.socket.ServerAddress.equals(Object) does not check for null argument
| Bug type NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT (click for details) In class org.jboss.remoting.transport.socket.ServerAddress In method org.jboss.remoting.transport.socket.ServerAddress.equals(Object) Local variable named obj At ServerAddress.java:[lines 109-140]
OS | org.jboss.remoting.samples.chat.utility.Parameters.getSecondaryParameterSources() may fail to close stream
| Bug type OS_OPEN_STREAM (click for details) In class org.jboss.remoting.samples.chat.utility.Parameters In method org.jboss.remoting.samples.chat.utility.Parameters.getSecondaryParameterSources() Need to close java.io.InputStream At Parameters.java:[line 108]
RR | org.jboss.remoting.transport.multiplex.MultiplexingInputStream.read() ignores result of org.jboss.remoting.transport.multiplex.MultiplexingInputStream.skip(long)
| Bug type SR_NOT_CHECKED (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingInputStream In method org.jboss.remoting.transport.multiplex.MultiplexingInputStream.read() Called method org.jboss.remoting.transport.multiplex.MultiplexingInputStream.skip(long) At MultiplexingInputStream.java:[line 159]
RR | org.jboss.remoting.transport.multiplex.MultiplexingInputStream.read(byte[], int, int) ignores result of org.jboss.remoting.transport.multiplex.MultiplexingInputStream.skip(long)
| Bug type SR_NOT_CHECKED (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingInputStream In method org.jboss.remoting.transport.multiplex.MultiplexingInputStream.read(byte[], int, int) Called method org.jboss.remoting.transport.multiplex.MultiplexingInputStream.skip(long) At MultiplexingInputStream.java:[line 221]
RV | org.jboss.remoting.loading.ClassByteClassLoader.clean(ClassByteClassLoader$MyRef) ignores exceptional return value of java.io.File.delete()
| Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details) In class org.jboss.remoting.loading.ClassByteClassLoader In method org.jboss.remoting.loading.ClassByteClassLoader.clean(ClassByteClassLoader$MyRef) Called method java.io.File.delete() At ClassByteClassLoader.java:[line 115]
RV | org.jboss.remoting.loading.ClassByteClassLoader.finalize() ignores exceptional return value of java.io.File.delete()
| Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details) In class org.jboss.remoting.loading.ClassByteClassLoader In method org.jboss.remoting.loading.ClassByteClassLoader.finalize() Called method java.io.File.delete() At ClassByteClassLoader.java:[line 156]
RV | org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) ignores exceptional return value of java.io.File.createNewFile()
| Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details) In class org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler In method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) Called method java.io.File.createNewFile() At StreamingServer.java:[line 125]
Se | Class org.jboss.remoting.marshal.encryption.EncryptingMarshaller defines non-transient non-serializable instance field cipher
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.marshal.encryption.EncryptingMarshaller Field org.jboss.remoting.marshal.encryption.EncryptingMarshaller.cipher In EncryptingMarshaller.java
Se | Class org.jboss.remoting.marshal.encryption.EncryptingUnMarshaller defines non-transient non-serializable instance field cipher
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.marshal.encryption.EncryptingUnMarshaller Field org.jboss.remoting.marshal.encryption.EncryptingUnMarshaller.cipher In EncryptingUnMarshaller.java
Se | Class org.jboss.remoting.marshal.serializable.SerializableUnMarshaller defines non-transient non-serializable instance field customClassLoader
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.marshal.serializable.SerializableUnMarshaller Field org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.customClassLoader In SerializableUnMarshaller.java
Se | org.jboss.remoting.samples.chat.utility.ReadWriteArrayList$Gate is serializable and an inner class
| Bug type SE_INNER_CLASS (click for details) In class org.jboss.remoting.samples.chat.utility.ReadWriteArrayList$Gate At ReadWriteArrayList.java:[lines 90-139]
Se | Class org.jboss.remoting.socketfactory.CreationListenerServerSocketFactory defines non-transient non-serializable instance field listener
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.socketfactory.CreationListenerServerSocketFactory Field org.jboss.remoting.socketfactory.CreationListenerServerSocketFactory.listener In CreationListenerServerSocketFactory.java
Se | Class org.jboss.remoting.socketfactory.CreationListenerSocketFactory defines non-transient non-serializable instance field listener
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.socketfactory.CreationListenerSocketFactory Field org.jboss.remoting.socketfactory.CreationListenerSocketFactory.listener In CreationListenerSocketFactory.java
Se | Class org.jboss.remoting.transport.multiplex.MasterServerSocket defines non-transient non-serializable instance field ss
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.MasterServerSocket Field org.jboss.remoting.transport.multiplex.MasterServerSocket.ss In MasterServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.MasterServerSocket defines non-transient non-serializable instance field ssc
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.MasterServerSocket Field org.jboss.remoting.transport.multiplex.MasterServerSocket.ssc In MasterServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field actualSocket
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.actualSocket In VirtualServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field cis
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.cis In VirtualServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field dummySocket
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.dummySocket In VirtualServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field is
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.is In VirtualServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field manager
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.manager In VirtualServerSocket.java
Se | Class org.jboss.remoting.transport.multiplex.VirtualServerSocket defines non-transient non-serializable instance field protocol
| Bug type SE_BAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket Field org.jboss.remoting.transport.multiplex.VirtualServerSocket.protocol In VirtualServerSocket.java

## Correctness Warnings

Code | Warning
--- | ---
MF | Field MultiplexClientInvoker.clientSocketClassName masks field in superclass org.jboss.remoting.transport.socket.MicroSocketClientInvoker
| Bug type MF_CLASS_MASKS_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexClientInvoker Masking field org.jboss.remoting.transport.multiplex.MultiplexClientInvoker.clientSocketClassName Masked field org.jboss.remoting.transport.socket.MicroSocketClientInvoker.clientSocketClassName At MultiplexClientInvoker.java:[lines 55-569]
NP | callback could be null and is guaranteed to be dereferenced in org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallback(Callback, boolean, boolean)
| Bug type NP_GUARANTEED_DEREF (click for details) In class org.jboss.remoting.callback.ServerInvokerCallbackHandler In method org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallback(Callback, boolean, boolean) Value loaded from callback Dereferenced at ServerInvokerCallbackHandler.java:[line 841] Dereferenced at ServerInvokerCallbackHandler.java:[line 835] Known null at ServerInvokerCallbackHandler.java:[line 803]
NP | Possible null pointer dereference of Client$ConnectionValidatorKey.metadata in org.jboss.remoting.Client$ConnectionValidatorKey.equals(Object)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.Client$ConnectionValidatorKey In method org.jboss.remoting.Client$ConnectionValidatorKey.equals(Object) Value contained in org.jboss.remoting.Client$ConnectionValidatorKey.metadata Dereferenced at Client.java:[line 2124] Known null at Client.java:[line 2124]
NP | Possible null pointer dereference of domainNodes in org.jboss.remoting.detection.AbstractDetector.setConfiguration(Element)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.detection.AbstractDetector In method org.jboss.remoting.detection.AbstractDetector.setConfiguration(Element) Value loaded from domainNodes Dereferenced at AbstractDetector.java:[line 325] Known null at AbstractDetector.java:[line 320]
NP | Possible null pointer dereference of Detection.serverInvokers in org.jboss.remoting.detection.Detection.getLocators()
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.detection.Detection In method org.jboss.remoting.detection.Detection.getLocators() Value contained in org.jboss.remoting.detection.Detection.serverInvokers Dereferenced at Detection.java:[line 98] Known null at Detection.java:[line 97]
NP | Possible null pointer dereference of ident in org.jboss.remoting.ident.Identity.setDomain(String)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.ident.Identity In method org.jboss.remoting.ident.Identity.setDomain(String) Value loaded from ident Dereferenced at Identity.java:[line 103] Known null at Identity.java:[line 99]
NP | Possible null pointer dereference of customer in org.jboss.remoting.samples.transporter.basic.CustomerProcessorImpl.processCustomer(Customer)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.samples.transporter.basic.CustomerProcessorImpl In method org.jboss.remoting.samples.transporter.basic.CustomerProcessorImpl.processCustomer(Customer) Value loaded from customer Dereferenced at CustomerProcessorImpl.java:[line 49] Known null at CustomerProcessorImpl.java:[line 45]
NP | Possible null pointer dereference of customer in org.jboss.remoting.samples.transporter.multiple.CustomerProcessorImpl.processCustomer(Customer)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.samples.transporter.multiple.CustomerProcessorImpl In method org.jboss.remoting.samples.transporter.multiple.CustomerProcessorImpl.processCustomer(Customer) Value loaded from customer Dereferenced at CustomerProcessorImpl.java:[line 26] Known null at CustomerProcessorImpl.java:[line 22]
NP | Possible null pointer dereference of customerProxy in org.jboss.remoting.samples.transporter.proxy.CustomerProcessorImpl.processCustomer(Customer) on exception path
| Bug type NP_NULL_ON_SOME_PATH_EXCEPTION (click for details) In class org.jboss.remoting.samples.transporter.proxy.CustomerProcessorImpl In method org.jboss.remoting.samples.transporter.proxy.CustomerProcessorImpl.processCustomer(Customer) Value loaded from customerProxy Dereferenced at CustomerProcessorImpl.java:[line 64] Known null at CustomerProcessorImpl.java:[line 61]
NP | Possible null pointer dereference of handler in org.jboss.remoting.ServerInvoker.removeCallbackListener(String, InvokerCallbackHandler)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.ServerInvoker In method org.jboss.remoting.ServerInvoker.removeCallbackListener(String, InvokerCallbackHandler) Value loaded from handler Dereferenced at ServerInvoker.java:[line 1024] Known null at ServerInvoker.java:[line 1019]
NP | Possible null pointer dereference of proxyTypeClass in org.jboss.remoting.transport.http.HTTPClientInvoker.createURLConnection(String, Map)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.createURLConnection(String, Map) Value loaded from proxyTypeClass Dereferenced at HTTPClientInvoker.java:[line 825] Known null at HTTPClientInvoker.java:[line 814]
NP | Possible null pointer dereference of configuration in new org.jboss.remoting.transport.multiplex.MultiplexingManager(InetSocketAddress, int, Map)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager In method new org.jboss.remoting.transport.multiplex.MultiplexingManager(InetSocketAddress, int, Map) Value loaded from configuration Dereferenced at MultiplexingManager.java:[line 393] Known null at MultiplexingManager.java:[line 391]
NP | Possible null pointer dereference of configuration in new org.jboss.remoting.transport.multiplex.MultiplexingManager(Map)
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager In method new org.jboss.remoting.transport.multiplex.MultiplexingManager(Map) Value loaded from configuration Dereferenced at MultiplexingManager.java:[line 355] Known null at MultiplexingManager.java:[line 353]
NP | Possible null pointer dereference of org.jboss.remoting.AbstractInvoker.configuration in org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.getParameters()
| Bug type NP_NULL_ON_SOME_PATH (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.getParameters() Value contained in org.jboss.remoting.AbstractInvoker.configuration Dereferenced at MultiplexServerInvoker.java:[line 1150] Known null at MultiplexServerInvoker.java:[line 1147]
RCN | Nullcheck of locator at line 127 of value previously dereferenced in new org.jboss.remoting.AbstractInvoker(InvokerLocator, Map)
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.AbstractInvoker In method new org.jboss.remoting.AbstractInvoker(InvokerLocator, Map) Value loaded from locator At AbstractInvoker.java:[line 100] Redundant null check at AbstractInvoker.java:[line 127]
RCN | Nullcheck of locator at line 328 of value previously dereferenced in org.jboss.remoting.marshal.MarshalFactory.getMarshaller(InvokerLocator, ClassLoader, Map)
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.marshal.MarshalFactory In method org.jboss.remoting.marshal.MarshalFactory.getMarshaller(InvokerLocator, ClassLoader, Map) Value loaded from locator At MarshalFactory.java:[line 326] Redundant null check at MarshalFactory.java:[line 328]
RCN | Nullcheck of locator at line 479 of value previously dereferenced in org.jboss.remoting.marshal.MarshalFactory.getUnMarshaller(InvokerLocator, ClassLoader, Map)
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.marshal.MarshalFactory In method org.jboss.remoting.marshal.MarshalFactory.getUnMarshaller(InvokerLocator, ClassLoader, Map) Value loaded from locator At MarshalFactory.java:[line 477] Redundant null check at MarshalFactory.java:[line 479]
RCN | Nullcheck of configuration at line 471 of value previously dereferenced in org.jboss.remoting.MicroRemoteClientInvoker.establishLease(String, Map, long)
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.MicroRemoteClientInvoker In method org.jboss.remoting.MicroRemoteClientInvoker.establishLease(String, Map, long) Value loaded from configuration At MicroRemoteClientInvoker.java:[line 468] Redundant null check at MicroRemoteClientInvoker.java:[line 471]
RCN | Nullcheck of Client2Server1.client at line 122 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Client2Server1.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client2Server1 In method org.jboss.remoting.samples.multiplex.invoker.Client2Server1.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Client2Server1.client At Client2Server1.java:[line 113] Redundant null check at Client2Server1.java:[line 122]
RCN | Nullcheck of Client2Server2.client at line 122 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Client2Server2.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client2Server2 In method org.jboss.remoting.samples.multiplex.invoker.Client2Server2.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Client2Server2.client At Client2Server2.java:[line 113] Redundant null check at Client2Server2.java:[line 122]
RCN | Nullcheck of Client3Server1.client at line 120 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Client3Server1.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client3Server1 In method org.jboss.remoting.samples.multiplex.invoker.Client3Server1.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Client3Server1.client At Client3Server1.java:[line 111] Redundant null check at Client3Server1.java:[line 120]
RCN | Nullcheck of Server2Client1.client at line 114 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Server2Client1.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server2Client1 In method org.jboss.remoting.samples.multiplex.invoker.Server2Client1.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Server2Client1.client At Server2Client1.java:[line 105] Redundant null check at Server2Client1.java:[line 114]
RCN | Nullcheck of Server2Client2.client at line 112 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Server2Client2.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server2Client2 In method org.jboss.remoting.samples.multiplex.invoker.Server2Client2.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Server2Client2.client At Server2Client2.java:[line 103] Redundant null check at Server2Client2.java:[line 112]
RCN | Nullcheck of Server3Client1.client at line 114 of value previously dereferenced in org.jboss.remoting.samples.multiplex.invoker.Server3Client1.tearDown()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server3Client1 In method org.jboss.remoting.samples.multiplex.invoker.Server3Client1.tearDown() Value loaded from field org.jboss.remoting.samples.multiplex.invoker.Server3Client1.client At Server3Client1.java:[line 105] Redundant null check at Server3Client1.java:[line 114]
RCN | Nullcheck of MicroSocketClientInvoker.pool at line 435 of value previously dereferenced in org.jboss.remoting.transport.socket.MicroSocketClientInvoker.flushConnectionPool()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.transport.socket.MicroSocketClientInvoker In method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.flushConnectionPool() Value loaded from field org.jboss.remoting.transport.socket.MicroSocketClientInvoker.pool At MicroSocketClientInvoker.java:[line 433] Redundant null check at MicroSocketClientInvoker.java:[line 435]
RCN | Nullcheck of ServerThread.invoker at line 1020 of value previously dereferenced in org.jboss.remoting.transport.socket.ServerThread.processNewSocket()
| Bug type RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE (click for details) In class org.jboss.remoting.transport.socket.ServerThread In method org.jboss.remoting.transport.socket.ServerThread.processNewSocket() Value loaded from field org.jboss.remoting.transport.socket.ServerThread.invoker At ServerThread.java:[line 1013] Redundant null check at ServerThread.java:[line 1020]
RpC | Repeated conditional test in org.jboss.remoting.transport.socket.ServerThread.dorun()
| Bug type RpC_REPEATED_CONDITIONAL_TEST (click for details) In class org.jboss.remoting.transport.socket.ServerThread In method org.jboss.remoting.transport.socket.ServerThread.dorun() At ServerThread.java:[line 644] At ServerThread.java:[line 646]
USELESS_STRING | Invocation of toString on bytes in org.jboss.remoting.loading.ClassByteClassLoader.loadClass(String, ClassBytes[])
| Bug type DMI_INVOKING_TOSTRING_ON_ARRAY (click for details) In class org.jboss.remoting.loading.ClassByteClassLoader In method org.jboss.remoting.loading.ClassByteClassLoader.loadClass(String, ClassBytes[]) Local variable named bytes At ClassByteClassLoader.java:[line 171]
USELESS_STRING | Invocation of toString on ClassBytes.classBytes in org.jboss.remoting.loading.ClassBytes.toString()
| Bug type DMI_INVOKING_TOSTRING_ON_ARRAY (click for details) In class org.jboss.remoting.loading.ClassBytes In method org.jboss.remoting.loading.ClassBytes.toString() Value loaded from field org.jboss.remoting.loading.ClassBytes.classBytes At ClassBytes.java:[line 44]
USELESS_STRING | Invocation of toString on params in org.jboss.remoting.ServerInvoker.handleInternalInvocation(InternalInvocation, InvocationRequest, ServerInvocationHandler)
| Bug type DMI_INVOKING_TOSTRING_ON_ARRAY (click for details) In class org.jboss.remoting.ServerInvoker In method org.jboss.remoting.ServerInvoker.handleInternalInvocation(InternalInvocation, InvocationRequest, ServerInvocationHandler) Local variable named params At ServerInvoker.java:[line 1723]

## Experimental Warnings

Code | Warning
--- | ---
OBL | Method org.jboss.remoting.samples.chat.utility.Parameters.getSecondaryParameterSources() may fail to clean up java.io.InputStream
| Bug type OBL_UNSATISFIED_OBLIGATION (click for details) In class org.jboss.remoting.samples.chat.utility.Parameters In method org.jboss.remoting.samples.chat.utility.Parameters.getSecondaryParameterSources() Reference type java.io.InputStream 1 instances of obligation remaining Obligation to clean up resource created at Parameters.java:[line 108] is not discharged Path continues at Parameters.java:[line 109] Path continues at Parameters.java:[line 110] Path continues at Parameters.java:[line 111] Path continues at Parameters.java:[line 113] Path continues at Parameters.java:[line 130] Path continues at Parameters.java:[line 132] Path continues at Parameters.java:[line 134] Path continues at Parameters.java:[line 147] Path continues at Parameters.java:[line 148] Path continues at Parameters.java:[line 153] Remaining obligations: {InputStream x 1}
OBL | Method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) may fail to clean up java.io.OutputStream
| Bug type OBL_UNSATISFIED_OBLIGATION (click for details) In class org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler In method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) Reference type java.io.OutputStream 1 instances of obligation remaining Obligation to clean up resource created at StreamingServer.java:[line 128] is not discharged Path continues at StreamingServer.java:[line 130] Path continues at StreamingServer.java:[line 133] Path continues at StreamingServer.java:[line 148] Path continues at StreamingServer.java:[line 150] Path continues at StreamingServer.java:[line 151] Path continues at StreamingServer.java:[line 154] Path continues at StreamingServer.java:[line 156] Path continues at StreamingServer.java:[line 161] Path continues at StreamingServer.java:[line 162] Path continues at StreamingServer.java:[line 163] Remaining obligations: {OutputStream x 1}

## Malicious code vulnerability Warnings

Code | Warning
--- | ---
EI | org.jboss.remoting.detection.Detection.getServerInvokers() may expose internal representation by returning Detection.serverInvokers
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.detection.Detection In method org.jboss.remoting.detection.Detection.getServerInvokers() Field org.jboss.remoting.detection.Detection.serverInvokers At Detection.java:[line 114]
EI | org.jboss.remoting.detection.ServerInvokerMetadata.getSubSystems() may expose internal representation by returning ServerInvokerMetadata.subSystems
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.detection.ServerInvokerMetadata In method org.jboss.remoting.detection.ServerInvokerMetadata.getSubSystems() Field org.jboss.remoting.detection.ServerInvokerMetadata.subSystems At ServerInvokerMetadata.java:[line 54]
EI | org.jboss.remoting.invocation.NameBasedInvocation.getSignature() may expose internal representation by returning NameBasedInvocation.sig
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.invocation.NameBasedInvocation In method org.jboss.remoting.invocation.NameBasedInvocation.getSignature() Field org.jboss.remoting.invocation.NameBasedInvocation.sig At NameBasedInvocation.java:[line 71]
EI | org.jboss.remoting.invocation.RemoteInvocation.getParameters() may expose internal representation by returning RemoteInvocation.params
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.invocation.RemoteInvocation In method org.jboss.remoting.invocation.RemoteInvocation.getParameters() Field org.jboss.remoting.invocation.RemoteInvocation.params At RemoteInvocation.java:[line 53]
EI | org.jboss.remoting.loading.ClassBytes.getClassBytes() may expose internal representation by returning ClassBytes.classBytes
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.loading.ClassBytes In method org.jboss.remoting.loading.ClassBytes.getClassBytes() Field org.jboss.remoting.loading.ClassBytes.classBytes At ClassBytes.java:[line 54]
EI | org.jboss.remoting.network.NetworkInstance.getLocators() may expose internal representation by returning NetworkInstance.locators
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.network.NetworkInstance In method org.jboss.remoting.network.NetworkInstance.getLocators() Field org.jboss.remoting.network.NetworkInstance.locators At NetworkInstance.java:[line 70]
EI | org.jboss.remoting.network.NetworkInstance.getServerInvokers() may expose internal representation by returning NetworkInstance.serverInvokers
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.network.NetworkInstance In method org.jboss.remoting.network.NetworkInstance.getServerInvokers() Field org.jboss.remoting.network.NetworkInstance.serverInvokers At NetworkInstance.java:[line 93]
EI | org.jboss.remoting.network.NetworkNotification.getLocator() may expose internal representation by returning NetworkNotification.locators
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.network.NetworkNotification In method org.jboss.remoting.network.NetworkNotification.getLocator() Field org.jboss.remoting.network.NetworkNotification.locators At NetworkNotification.java:[line 87]
EI | org.jboss.remoting.network.NetworkNotification.getServerInvokers() may expose internal representation by returning NetworkNotification.serverInvokers
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.network.NetworkNotification In method org.jboss.remoting.network.NetworkNotification.getServerInvokers() Field org.jboss.remoting.network.NetworkNotification.serverInvokers At NetworkNotification.java:[line 109]
EI | org.jboss.remoting.samples.chat.client.ChatInfo.get_origin() may expose internal representation by returning ChatInfo.origin
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.samples.chat.client.ChatInfo In method org.jboss.remoting.samples.chat.client.ChatInfo.get_origin() Field org.jboss.remoting.samples.chat.client.ChatInfo.origin At ChatInfo.java:[line 31]
EI | org.jboss.remoting.serialization.impl.java.JavaMarshalledValue.toByteArray() may expose internal representation by returning JavaMarshalledValue.serializedForm
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.serialization.impl.java.JavaMarshalledValue In method org.jboss.remoting.serialization.impl.java.JavaMarshalledValue.toByteArray() Field org.jboss.remoting.serialization.impl.java.JavaMarshalledValue.serializedForm At JavaMarshalledValue.java:[line 106]
EI | org.jboss.remoting.stream.StreamCallPayload.getParams() may expose internal representation by returning StreamCallPayload.paramArray
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.stream.StreamCallPayload In method org.jboss.remoting.stream.StreamCallPayload.getParams() Field org.jboss.remoting.stream.StreamCallPayload.paramArray At StreamCallPayload.java:[line 81]
EI | org.jboss.remoting.transport.multiplex.SocketId.toByteArray() may expose internal representation by returning SocketId.bytes
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.multiplex.SocketId In method org.jboss.remoting.transport.multiplex.SocketId.toByteArray() Field org.jboss.remoting.transport.multiplex.SocketId.bytes At SocketId.java:[line 130]
EI | org.jboss.remoting.transport.multiplex.utility.ShrinkableByteArrayOutputStream.toByteArray(int) may expose internal representation by returning ShrinkableByteArrayOutputStream.buf
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.multiplex.utility.ShrinkableByteArrayOutputStream In method org.jboss.remoting.transport.multiplex.utility.ShrinkableByteArrayOutputStream.toByteArray(int) Field org.jboss.remoting.transport.multiplex.utility.ShrinkableByteArrayOutputStream.buf At ShrinkableByteArrayOutputStream.java:[line 142]
EI | org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.getEnabledCipherSuites() may expose internal representation by returning SSLBisocketClientInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.getEnabledCipherSuites() Field org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.enabledCipherSuites At SSLBisocketClientInvoker.java:[line 94]
EI | org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.getEnabledProtocols() may expose internal representation by returning SSLBisocketClientInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.getEnabledProtocols() Field org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.enabledProtocols At SSLBisocketClientInvoker.java:[line 104]
EI | org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.getEnabledCipherSuites() may expose internal representation by returning SSLBisocketServerInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.getEnabledCipherSuites() Field org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.enabledCipherSuites At SSLBisocketServerInvoker.java:[line 78]
EI | org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.getEnabledProtocols() may expose internal representation by returning SSLBisocketServerInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.getEnabledProtocols() Field org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.enabledProtocols At SSLBisocketServerInvoker.java:[line 88]
EI | org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.getEnabledCipherSuites() may expose internal representation by returning SSLSocketClientInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.getEnabledCipherSuites() Field org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.enabledCipherSuites At SSLSocketClientInvoker.java:[line 93]
EI | org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.getEnabledProtocols() may expose internal representation by returning SSLSocketClientInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.getEnabledProtocols() Field org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.enabledProtocols At SSLSocketClientInvoker.java:[line 103]
EI | org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.getEnabledCipherSuites() may expose internal representation by returning SSLSocketServerInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.getEnabledCipherSuites() Field org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.enabledCipherSuites At SSLSocketServerInvoker.java:[line 64]
EI | org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.getEnabledProtocols() may expose internal representation by returning SSLSocketServerInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.getEnabledProtocols() Field org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.enabledProtocols At SSLSocketServerInvoker.java:[line 74]
EI2 | new org.jboss.remoting.detection.Detection(Identity, ServerInvokerMetadata[]) may expose internal representation by storing an externally mutable object into Detection.serverInvokers
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.detection.Detection In method new org.jboss.remoting.detection.Detection(Identity, ServerInvokerMetadata[]) Field org.jboss.remoting.detection.Detection.serverInvokers Local variable named serverInvokers At Detection.java:[line 46]
EI2 | new org.jboss.remoting.detection.ServerInvokerMetadata(InvokerLocator, String[]) may expose internal representation by storing an externally mutable object into ServerInvokerMetadata.subSystems
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.detection.ServerInvokerMetadata In method new org.jboss.remoting.detection.ServerInvokerMetadata(InvokerLocator, String[]) Field org.jboss.remoting.detection.ServerInvokerMetadata.subSystems Local variable named supportedSubsystems At ServerInvokerMetadata.java:[line 44]
EI2 | new org.jboss.remoting.invocation.NameBasedInvocation(String, Object[], String[]) may expose internal representation by storing an externally mutable object into NameBasedInvocation.sig
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.invocation.NameBasedInvocation In method new org.jboss.remoting.invocation.NameBasedInvocation(String, Object[], String[]) Field org.jboss.remoting.invocation.NameBasedInvocation.sig Local variable named sig At NameBasedInvocation.java:[line 66]
EI2 | new org.jboss.remoting.invocation.RemoteInvocation(String, Object[]) may expose internal representation by storing an externally mutable object into RemoteInvocation.params
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.invocation.RemoteInvocation In method new org.jboss.remoting.invocation.RemoteInvocation(String, Object[]) Field org.jboss.remoting.invocation.RemoteInvocation.params Local variable named params At RemoteInvocation.java:[line 43]
EI2 | new org.jboss.remoting.loading.ClassBytes(String, byte[]) may expose internal representation by storing an externally mutable object into ClassBytes.classBytes
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.loading.ClassBytes In method new org.jboss.remoting.loading.ClassBytes(String, byte[]) Field org.jboss.remoting.loading.ClassBytes.classBytes Local variable named data At ClassBytes.java:[line 39]
EI2 | new org.jboss.remoting.network.NetworkInstance(Identity, InvokerLocator[]) may expose internal representation by storing an externally mutable object into NetworkInstance.locators
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.network.NetworkInstance In method new org.jboss.remoting.network.NetworkInstance(Identity, InvokerLocator[]) Field org.jboss.remoting.network.NetworkInstance.locators Local variable named locators At NetworkInstance.java:[line 48]
EI2 | new org.jboss.remoting.network.NetworkInstance(Identity, ServerInvokerMetadata[]) may expose internal representation by storing an externally mutable object into NetworkInstance.serverInvokers
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.network.NetworkInstance In method new org.jboss.remoting.network.NetworkInstance(Identity, ServerInvokerMetadata[]) Field org.jboss.remoting.network.NetworkInstance.serverInvokers Local variable named serverInvokers At NetworkInstance.java:[line 58]
EI2 | new org.jboss.remoting.network.NetworkNotification(ObjectName, String, Identity, InvokerLocator[]) may expose internal representation by storing an externally mutable object into NetworkNotification.locators
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.network.NetworkNotification In method new org.jboss.remoting.network.NetworkNotification(ObjectName, String, Identity, InvokerLocator[]) Field org.jboss.remoting.network.NetworkNotification.locators Local variable named locators At NetworkNotification.java:[line 65]
EI2 | new org.jboss.remoting.network.NetworkNotification(ObjectName, String, Identity, ServerInvokerMetadata[]) may expose internal representation by storing an externally mutable object into NetworkNotification.serverInvokers
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.network.NetworkNotification In method new org.jboss.remoting.network.NetworkNotification(ObjectName, String, Identity, ServerInvokerMetadata[]) Field org.jboss.remoting.network.NetworkNotification.serverInvokers Local variable named serverInvokers At NetworkNotification.java:[line 56]
EI2 | new org.jboss.remoting.samples.chat.client.ChatInfo(String, String, ChatMember, Date, int, int) may expose internal representation by storing an externally mutable object into ChatInfo.origin
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.samples.chat.client.ChatInfo In method new org.jboss.remoting.samples.chat.client.ChatInfo(String, String, ChatMember, Date, int, int) Field org.jboss.remoting.samples.chat.client.ChatInfo.origin Local variable named origin At ChatInfo.java:[line 13]
EI2 | org.jboss.remoting.samples.chat.client.ChatInfo.set_origin(Date) may expose internal representation by storing an externally mutable object into ChatInfo.origin
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.samples.chat.client.ChatInfo In method org.jboss.remoting.samples.chat.client.ChatInfo.set_origin(Date) Field org.jboss.remoting.samples.chat.client.ChatInfo.origin Local variable named origin At ChatInfo.java:[line 32]
EI2 | org.jboss.remoting.samples.http.ComplexObject.setBytes(byte[]) may expose internal representation by storing an externally mutable object into ComplexObject.bytes
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.samples.http.ComplexObject In method org.jboss.remoting.samples.http.ComplexObject.setBytes(byte[]) Field org.jboss.remoting.samples.http.ComplexObject.bytes Local variable named bytes At ComplexObject.java:[line 57]
EI2 | org.jboss.remoting.stream.StreamCallPayload.setParams(Object[]) may expose internal representation by storing an externally mutable object into StreamCallPayload.paramArray
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.stream.StreamCallPayload In method org.jboss.remoting.stream.StreamCallPayload.setParams(Object[]) Field org.jboss.remoting.stream.StreamCallPayload.paramArray Local variable named params At StreamCallPayload.java:[line 71]
EI2 | new org.jboss.remoting.transport.multiplex.SocketId(byte[]) may expose internal representation by storing an externally mutable object into SocketId.bytes
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.multiplex.SocketId In method new org.jboss.remoting.transport.multiplex.SocketId(byte[]) Field org.jboss.remoting.transport.multiplex.SocketId.bytes Local variable named bytes At SocketId.java:[line 111]
EI2 | org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.setEnabledCipherSuites(String[]) may expose internal representation by storing an externally mutable object into SSLBisocketClientInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.setEnabledCipherSuites(String[]) Field org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.enabledCipherSuites Local variable named enabledCipherSuites At SSLBisocketClientInvoker.java:[line 99]
EI2 | org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.setEnabledProtocols(String[]) may expose internal representation by storing an externally mutable object into SSLBisocketClientInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.setEnabledProtocols(String[]) Field org.jboss.remoting.transport.sslbisocket.SSLBisocketClientInvoker.enabledProtocols Local variable named enabledProtocols At SSLBisocketClientInvoker.java:[line 109]
EI2 | org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.setEnabledCipherSuites(String[]) may expose internal representation by storing an externally mutable object into SSLBisocketServerInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.setEnabledCipherSuites(String[]) Field org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.enabledCipherSuites Local variable named enabledCipherSuites At SSLBisocketServerInvoker.java:[line 83]
EI2 | org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.setEnabledProtocols(String[]) may expose internal representation by storing an externally mutable object into SSLBisocketServerInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker In method org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.setEnabledProtocols(String[]) Field org.jboss.remoting.transport.sslbisocket.SSLBisocketServerInvoker.enabledProtocols Local variable named enabledProtocols At SSLBisocketServerInvoker.java:[line 93]
EI2 | org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.setEnabledCipherSuites(String[]) may expose internal representation by storing an externally mutable object into SSLSocketClientInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.setEnabledCipherSuites(String[]) Field org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.enabledCipherSuites Local variable named enabledCipherSuites At SSLSocketClientInvoker.java:[line 98]
EI2 | org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.setEnabledProtocols(String[]) may expose internal representation by storing an externally mutable object into SSLSocketClientInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.setEnabledProtocols(String[]) Field org.jboss.remoting.transport.sslsocket.SSLSocketClientInvoker.enabledProtocols Local variable named enabledProtocols At SSLSocketClientInvoker.java:[line 108]
EI2 | org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.setEnabledCipherSuites(String[]) may expose internal representation by storing an externally mutable object into SSLSocketServerInvoker.enabledCipherSuites
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.setEnabledCipherSuites(String[]) Field org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.enabledCipherSuites Local variable named enabledCipherSuites At SSLSocketServerInvoker.java:[line 69]
EI2 | org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.setEnabledProtocols(String[]) may expose internal representation by storing an externally mutable object into SSLSocketServerInvoker.enabledProtocols
| Bug type EI_EXPOSE_REP2 (click for details) In class org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker In method org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.setEnabledProtocols(String[]) Field org.jboss.remoting.transport.sslsocket.SSLSocketServerInvoker.enabledProtocols Local variable named enabledProtocols At SSLSocketServerInvoker.java:[line 79]
MS | org.jboss.remoting.ident.Identity.DEFAULT_DOMAIN isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.ident.Identity Field org.jboss.remoting.ident.Identity.DEFAULT_DOMAIN At Identity.java:[line 60]
MS | org.jboss.remoting.InvokerLocator.legacyParsingFlag should be package protected
| Bug type MS_PKGPROTECT (click for details) In class org.jboss.remoting.InvokerLocator Field org.jboss.remoting.InvokerLocator.legacyParsingFlag In InvokerLocator.java
MS | org.jboss.remoting.InvokerLocator.log isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.InvokerLocator Field org.jboss.remoting.InvokerLocator.log At InvokerLocator.java:[line 78]
MS | org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.clearMethod isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.loading.ObjectInputStreamWithClassLoader Field org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.clearMethod At ObjectInputStreamWithClassLoader.java:[line 58]
MS | org.jboss.remoting.samples.bisocket.BisocketSampleServer.port isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.bisocket.BisocketSampleServer Field org.jboss.remoting.samples.bisocket.BisocketSampleServer.port At BisocketSampleServer.java:[line 63]
MS | org.jboss.remoting.samples.config.factories.FactoryConfigSample.log isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.config.factories.FactoryConfigSample Field org.jboss.remoting.samples.config.factories.FactoryConfigSample.log At FactoryConfigSample.java:[line 76]
MS | org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.port should be package protected
| Bug type MS_PKGPROTECT (click for details) In class org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer Field org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.port At SimpleDetectorServer.java:[line 30]
MS | org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.transport should be package protected
| Bug type MS_PKGPROTECT (click for details) In class org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer Field org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.transport At SimpleDetectorServer.java:[line 28]
MS | org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.host isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer Field org.jboss.remoting.samples.detection.jndi.SimpleDetectorServer.host At SimpleDetectorServer.java:[line 29]
MS | org.jboss.remoting.samples.transporter.clustered.server.SocketServer.locatorURI isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.transporter.clustered.server.SocketServer Field org.jboss.remoting.samples.transporter.clustered.server.SocketServer.locatorURI At SocketServer.java:[line 34]
MS | org.jboss.remoting.samples.transporter.complex.server.Server.locatorURI isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.transporter.complex.server.Server Field org.jboss.remoting.samples.transporter.complex.server.Server.locatorURI At Server.java:[line 34]
MS | org.jboss.remoting.samples.transporter.custom.server.SocketServer.locatorURI isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.samples.transporter.custom.server.SocketServer Field org.jboss.remoting.samples.transporter.custom.server.SocketServer.locatorURI At SocketServer.java:[line 22]
MS | org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.PARAMS isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream Field org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.PARAMS At ClearableObjectOutputStream.java:[line 47]
MS | org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.clearMethod isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream Field org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.clearMethod At ClearableObjectOutputStream.java:[line 53]
MS | org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.log isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream Field org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream.log At ClearableObjectOutputStream.java:[line 45]
MS | org.jboss.remoting.transport.coyote.CoyoteInvoker.receivedInvocationRequest isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker Field org.jboss.remoting.transport.coyote.CoyoteInvoker.receivedInvocationRequest At CoyoteInvoker.java:[line 87]
MS | org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.configMaps isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory Field org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.configMaps At RemotingRMIClientSocketFactory.java:[line 85]
MS | org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.log isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory Field org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.log At RemotingRMIClientSocketFactory.java:[line 84]
MS | org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.socketFactories isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory Field org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.socketFactories At RemotingRMIClientSocketFactory.java:[line 86]
MS | org.jboss.remoting.transport.rmi.RMIServerInvoker.RMI_ONEWAY_MARSHALLING isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.rmi.RMIServerInvoker Field org.jboss.remoting.transport.rmi.RMIServerInvoker.RMI_ONEWAY_MARSHALLING At RMIServerInvoker.java:[line 89]
MS | org.jboss.remoting.transport.socket.SocketServerInvoker.MAX_POOL_SIZE_DEFAULT isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.socket.SocketServerInvoker Field org.jboss.remoting.transport.socket.SocketServerInvoker.MAX_POOL_SIZE_DEFAULT At SocketServerInvoker.java:[line 80]
MS | org.jboss.remoting.transport.web.WebServerInvoker.HEADER_SESSION_ID isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.web.WebServerInvoker Field org.jboss.remoting.transport.web.WebServerInvoker.HEADER_SESSION_ID At WebServerInvoker.java:[line 48]
MS | org.jboss.remoting.transport.web.WebServerInvoker.HEADER_SUBSYSTEM isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.web.WebServerInvoker Field org.jboss.remoting.transport.web.WebServerInvoker.HEADER_SUBSYSTEM At WebServerInvoker.java:[line 49]
MS | org.jboss.remoting.transport.web.WebUtil.BINARY isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.web.WebUtil Field org.jboss.remoting.transport.web.WebUtil.BINARY At WebUtil.java:[line 34]
MS | org.jboss.remoting.transport.web.WebUtil.HTML isn't final but should be
| Bug type MS_SHOULD_BE_FINAL (click for details) In class org.jboss.remoting.transport.web.WebUtil Field org.jboss.remoting.transport.web.WebUtil.HTML At WebUtil.java:[line 31]

## Multithreaded correctness Warnings

Code | Warning
--- | ---
IS | Inconsistent synchronization of org.jboss.remoting.AbstractInvoker.classbyteloader; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.AbstractInvoker Field org.jboss.remoting.AbstractInvoker.classbyteloader Synchronized 50% of the time Unsynchronized access at ServerInvoker.java:[line 986] Unsynchronized access at ServerInvoker.java:[line 988] Synchronized access at AbstractInvoker.java:[line 291] Synchronized access at AbstractInvoker.java:[line 308] Synchronized access at AbstractInvoker.java:[line 83] Synchronized access at AbstractInvoker.java:[line 119] Synchronized access at MicroRemoteClientInvoker.java:[line 351]
IS | Inconsistent synchronization of org.jboss.remoting.callback.CallbackPoller.reportStatistics; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.callback.CallbackPoller Field org.jboss.remoting.callback.CallbackPoller.reportStatistics Synchronized 50% of the time Unsynchronized access at CallbackPoller.java:[line 748] Synchronized access at CallbackPoller.java:[line 202]
IS | Inconsistent synchronization of org.jboss.remoting.callback.DefaultCallbackErrorHandler.callbackHandler; locked 66% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.callback.DefaultCallbackErrorHandler Field org.jboss.remoting.callback.DefaultCallbackErrorHandler.callbackHandler Synchronized 66% of the time Unsynchronized access at DefaultCallbackErrorHandler.java:[line 150] Synchronized access at DefaultCallbackErrorHandler.java:[line 133] Synchronized access at DefaultCallbackErrorHandler.java:[line 134]
IS | Inconsistent synchronization of org.jboss.remoting.callback.DefaultCallbackErrorHandler.handlerSubsystem; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.callback.DefaultCallbackErrorHandler Field org.jboss.remoting.callback.DefaultCallbackErrorHandler.handlerSubsystem Synchronized 50% of the time Unsynchronized access at DefaultCallbackErrorHandler.java:[line 85] Synchronized access at DefaultCallbackErrorHandler.java:[line 133]
IS | Inconsistent synchronization of org.jboss.remoting.callback.DefaultCallbackErrorHandler.numOfErrorsAllowed; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.callback.DefaultCallbackErrorHandler Field org.jboss.remoting.callback.DefaultCallbackErrorHandler.numOfErrorsAllowed Synchronized 50% of the time Unsynchronized access at DefaultCallbackErrorHandler.java:[line 95] Unsynchronized access at DefaultCallbackErrorHandler.java:[line 105] Synchronized access at DefaultCallbackErrorHandler.java:[line 122] Synchronized access at DefaultCallbackErrorHandler.java:[line 128] Synchronized access at DefaultCallbackErrorHandler.java:[line 71]
IS | Inconsistent synchronization of org.jboss.remoting.callback.DefaultCallbackErrorHandler.serverInvoker; locked 66% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.callback.DefaultCallbackErrorHandler Field org.jboss.remoting.callback.DefaultCallbackErrorHandler.serverInvoker Synchronized 66% of the time Unsynchronized access at DefaultCallbackErrorHandler.java:[line 144] Synchronized access at DefaultCallbackErrorHandler.java:[line 131] Synchronized access at DefaultCallbackErrorHandler.java:[line 133] Synchronized access at DefaultCallbackErrorHandler.java:[line 159] Synchronized access at DefaultCallbackErrorHandler.java:[line 165]
IS | Inconsistent synchronization of org.jboss.remoting.loading.RemotingClassLoader.userClassLoader; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.loading.RemotingClassLoader Field org.jboss.remoting.loading.RemotingClassLoader.userClassLoader Synchronized 50% of the time Unsynchronized access at RemotingClassLoader.java:[line 80] Unsynchronized access at RemotingClassLoader.java:[line 79] Unsynchronized access at RemotingClassLoader.java:[line 82] Synchronized access at RemotingClassLoader.java:[line 57] Synchronized access at RemotingClassLoader.java:[line 61] Synchronized access at RemotingClassLoader.java:[line 59] Synchronized access at RemotingClassLoader.java:[line 71] Synchronized access at RemotingClassLoader.java:[line 34] Synchronized access at RemotingClassLoader.java:[line 49]
IS | Inconsistent synchronization of org.jboss.remoting.samples.chat.utility.ShutDownGate.numberOfUsers; locked 87% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.samples.chat.utility.ShutDownGate Field org.jboss.remoting.samples.chat.utility.ShutDownGate.numberOfUsers Synchronized 87% of the time Unsynchronized access at ShutDownGate.java:[line 30] Synchronized access at ShutDownGate.java:[line 65] Synchronized access at ShutDownGate.java:[line 67] Synchronized access at ShutDownGate.java:[line 54] Synchronized access at ShutDownGate.java:[line 57] Synchronized access at ShutDownGate.java:[line 57] Synchronized access at ShutDownGate.java:[line 49] Synchronized access at ShutDownGate.java:[line 49]
IS | Inconsistent synchronization of org.jboss.remoting.samples.chat.utility.ShutDownGate.shuttingDown; locked 80% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.samples.chat.utility.ShutDownGate Field org.jboss.remoting.samples.chat.utility.ShutDownGate.shuttingDown Synchronized 80% of the time Unsynchronized access at ShutDownGate.java:[line 31] Synchronized access at ShutDownGate.java:[line 63] Synchronized access at ShutDownGate.java:[line 36] Synchronized access at ShutDownGate.java:[line 42] Synchronized access at ShutDownGate.java:[line 47]
IS | Inconsistent synchronization of org.jboss.remoting.transport.bisocket.BisocketServerInvoker$ControlMonitorTimerTask.running; locked 80% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker$ControlMonitorTimerTask Field org.jboss.remoting.transport.bisocket.BisocketServerInvoker$ControlMonitorTimerTask.running Synchronized 80% of the time Unsynchronized access at BisocketServerInvoker.java:[line 1229] Synchronized access at BisocketServerInvoker.java:[line 1210] Synchronized access at BisocketServerInvoker.java:[line 1238] Synchronized access at BisocketServerInvoker.java:[line 1253] Synchronized access at BisocketServerInvoker.java:[line 1265] Synchronized access at BisocketServerInvoker.java:[line 1186]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingInputStream.readException; locked 88% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingInputStream Field org.jboss.remoting.transport.multiplex.MultiplexingInputStream.readException Synchronized 88% of the time Unsynchronized access at MultiplexingInputStream.java:[line 471] Synchronized access at MultiplexingInputStream.java:[line 155] Synchronized access at MultiplexingInputStream.java:[line 156] Synchronized access at MultiplexingInputStream.java:[line 187] Synchronized access at MultiplexingInputStream.java:[line 188] Synchronized access at MultiplexingInputStream.java:[line 217] Synchronized access at MultiplexingInputStream.java:[line 218] Synchronized access at MultiplexingInputStream.java:[line 266] Synchronized access at MultiplexingInputStream.java:[line 267]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager.createdForRemoteServerSocket; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager.createdForRemoteServerSocket Synchronized 50% of the time Unsynchronized access at MultiplexingManager.java:[line 1336] Synchronized access at MultiplexingManager.java:[line 1292]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager.inputThread; locked 57% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager.inputThread Synchronized 57% of the time Unsynchronized access at MultiplexingManager.java:[line 2787] Unsynchronized access at MultiplexingManager.java:[line 2789] Unsynchronized access at MultiplexingManager.java:[line 2793] Synchronized access at MultiplexingManager.java:[line 472] Synchronized access at MultiplexingManager.java:[line 473] Synchronized access at MultiplexingManager.java:[line 473] Synchronized access at MultiplexingManager.java:[line 474]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager.remoteServerSocketRegistered; locked 71% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager.remoteServerSocketRegistered Synchronized 71% of the time Unsynchronized access at MultiplexingManager.java:[line 1348] Unsynchronized access at MultiplexingManager.java:[line 1355] Synchronized access at MultiplexingManager.java:[line 229] Synchronized access at MultiplexingManager.java:[line 1305] Synchronized access at MultiplexingManager.java:[line 1310] Synchronized access at MultiplexingManager.java:[line 229] Synchronized access at MultiplexingManager.java:[line 1342] Synchronized access at MultiplexingManager.java:[line 229] Synchronized access at MultiplexingManager.java:[line 1274] Synchronized access at MultiplexingManager.java:[line 1281]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager.remoteSocketAddress; locked 55% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager.remoteSocketAddress Synchronized 55% of the time Unsynchronized access at MultiplexingManager.java:[line 1975] Unsynchronized access at MultiplexingManager.java:[line 1979] Unsynchronized access at MultiplexingManager.java:[line 1986] Synchronized access at MultiplexingManager.java:[line 1952] Synchronized access at MultiplexingManager.java:[line 2022] Synchronized access at MultiplexingManager.java:[line 2026] Synchronized access at MultiplexingManager.java:[line 2033] Synchronized access at MultiplexingManager.java:[line 1285]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager.socket; locked 81% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager.socket Synchronized 81% of the time Unsynchronized access at MultiplexingManager.java:[line 1614] Unsynchronized access at MultiplexingManager.java:[line 1643] Unsynchronized access at MultiplexingManager.java:[line 2738] Unsynchronized access at MultiplexingManager.java:[line 2763] Unsynchronized access at MultiplexingManager.java:[line 2764] Unsynchronized access at MultiplexingManager.java:[line 2773] Synchronized access at MultiplexingManager.java:[line 357] Synchronized access at MultiplexingManager.java:[line 395] Synchronized access at MultiplexingManager.java:[line 1124] Synchronized access at MultiplexingManager.java:[line 1127] Synchronized access at MultiplexingManager.java:[line 1125] Synchronized access at MultiplexingManager.java:[line 1130] Synchronized access at MultiplexingManager.java:[line 371] Synchronized access at MultiplexingManager.java:[line 2067] Synchronized access at MultiplexingManager.java:[line 2079] Synchronized access at MultiplexingManager.java:[line 1145] Synchronized access at MultiplexingManager.java:[line 1153] Synchronized access at MultiplexingManager.java:[line 1156] Synchronized access at MultiplexingManager.java:[line 1154] Synchronized access at MultiplexingManager.java:[line 407] Synchronized access at MultiplexingManager.java:[line 423] Synchronized access at MultiplexingManager.java:[line 432] Synchronized access at MultiplexingManager.java:[line 427] Synchronized access at MultiplexingManager.java:[line 428] Synchronized access at MultiplexingManager.java:[line 433] Synchronized access at MultiplexingManager.java:[line 434] Synchronized access at MultiplexingManager.java:[line 464] Synchronized access at MultiplexingManager.java:[line 478] Synchronized access at MultiplexingManager.java:[line 472] Synchronized access at MultiplexingManager.java:[line 483] Synchronized access at MultiplexingManager.java:[line 483] Synchronized access at MultiplexingManager.java:[line 484] Synchronized access at MultiplexingManager.java:[line 484] Synchronized access at MultiplexingManager.java:[line 488] Synchronized access at MultiplexingManager.java:[line 496]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager.shutdown; locked 73% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager.shutdown Synchronized 73% of the time Unsynchronized access at MultiplexingManager.java:[line 2712] Unsynchronized access at MultiplexingManager.java:[line 2304] Unsynchronized access at MultiplexingManager.java:[line 2318] Unsynchronized access at MultiplexingManager.java:[line 2305] Synchronized access at MultiplexingManager.java:[line 2694] Synchronized access at MultiplexingManager.java:[line 2273] Synchronized access at MultiplexingManager.java:[line 2586] Synchronized access at MultiplexingManager.java:[line 2513] Synchronized access at MultiplexingManager.java:[line 2662] Synchronized access at MultiplexingManager.java:[line 2665] Synchronized access at MultiplexingManager.java:[line 2654] Synchronized access at MultiplexingManager.java:[line 2646] Synchronized access at MultiplexingManager.java:[line 2410] Synchronized access at MultiplexingManager.java:[line 2433] Synchronized access at MultiplexingManager.java:[line 2422] Synchronized access at MultiplexingManager.java:[line 2448]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager.shutdownRequestInProgress; locked 71% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager Field org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager.shutdownRequestInProgress Synchronized 71% of the time Unsynchronized access at MultiplexingManager.java:[line 2319] Unsynchronized access at MultiplexingManager.java:[line 2294] Synchronized access at MultiplexingManager.java:[line 2261] Synchronized access at MultiplexingManager.java:[line 2566] Synchronized access at MultiplexingManager.java:[line 2493] Synchronized access at MultiplexingManager.java:[line 2652] Synchronized access at MultiplexingManager.java:[line 2658] Synchronized access at MultiplexingManager.java:[line 2456]
IS | Inconsistent synchronization of org.jboss.remoting.transport.multiplex.utility.GrowablePipedInputStream.timeout; locked 75% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.multiplex.utility.GrowablePipedInputStream Field org.jboss.remoting.transport.multiplex.utility.GrowablePipedInputStream.timeout Synchronized 75% of the time Unsynchronized access at GrowablePipedInputStream.java:[line 237] Unsynchronized access at GrowablePipedInputStream.java:[line 134] Synchronized access at GrowablePipedInputStream.java:[line 152] Synchronized access at GrowablePipedInputStream.java:[line 158] Synchronized access at GrowablePipedInputStream.java:[line 158] Synchronized access at GrowablePipedInputStream.java:[line 199] Synchronized access at GrowablePipedInputStream.java:[line 205] Synchronized access at GrowablePipedInputStream.java:[line 205]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.ServerThread.invocationCount; locked 60% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.ServerThread Field org.jboss.remoting.transport.socket.ServerThread.invocationCount Synchronized 60% of the time Unsynchronized access at ServerThread.java:[line 417] Unsynchronized access at ServerThread.java:[line 421] Synchronized access at ServerThread.java:[line 325] Synchronized access at ServerThread.java:[line 835] Synchronized access at ServerThread.java:[line 835]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.ServerThread.invoker; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.ServerThread Field org.jboss.remoting.transport.socket.ServerThread.invoker Synchronized 50% of the time Unsynchronized access at ServerThread.java:[line 1013] Unsynchronized access at ServerThread.java:[line 1014] Unsynchronized access at ServerThread.java:[line 1015] Unsynchronized access at ServerThread.java:[line 1020] Unsynchronized access at ServerThread.java:[line 1022] Unsynchronized access at ServerThread.java:[line 260] Unsynchronized access at ServerThread.java:[line 515] Unsynchronized access at ServerThread.java:[line 521] Synchronized access at ServerThread.java:[line 323] Synchronized access at ServerThread.java:[line 1005] Synchronized access at ServerThread.java:[line 292] Synchronized access at ServerThread.java:[line 172] Synchronized access at ServerThread.java:[line 754] Synchronized access at ServerThread.java:[line 799] Synchronized access at ServerThread.java:[line 783] Synchronized access at ServerThread.java:[line 830] Synchronized access at ServerThread.java:[line 791] Synchronized access at ServerThread.java:[line 793]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.ServerThread.socket; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.ServerThread Field org.jboss.remoting.transport.socket.ServerThread.socket Synchronized 50% of the time Unsynchronized access at ServerThread.java:[line 515] Synchronized access at ServerThread.java:[line 321] Synchronized access at ServerThread.java:[line 168]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.ServerThread.timeout; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.ServerThread Field org.jboss.remoting.transport.socket.ServerThread.timeout Synchronized 50% of the time Unsynchronized access at ServerThread.java:[line 515] Synchronized access at ServerThread.java:[line 322] Synchronized access at ServerThread.java:[line 169]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.SocketServerInvoker.acceptThreads; locked 63% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.SocketServerInvoker Field org.jboss.remoting.transport.socket.SocketServerInvoker.acceptThreads Synchronized 63% of the time Unsynchronized access at SocketServerInvoker.java:[line 169] Unsynchronized access at SocketServerInvoker.java:[line 174] Unsynchronized access at SocketServerInvoker.java:[line 203] Unsynchronized access at SocketServerInvoker.java:[line 204] Synchronized access at SocketServerInvoker.java:[line 431] Synchronized access at SocketServerInvoker.java:[line 433] Synchronized access at SocketServerInvoker.java:[line 435] Synchronized access at SocketServerInvoker.java:[line 282] Synchronized access at SocketServerInvoker.java:[line 284] Synchronized access at SocketServerInvoker.java:[line 256] Synchronized access at SocketServerInvoker.java:[line 264]
IS | Inconsistent synchronization of org.jboss.remoting.transport.socket.SocketServerInvoker.idleTimerTask; locked 50% of time
| Bug type IS2_INCONSISTENT_SYNC (click for details) In class org.jboss.remoting.transport.socket.SocketServerInvoker Field org.jboss.remoting.transport.socket.SocketServerInvoker.idleTimerTask Synchronized 50% of the time Unsynchronized access at SocketServerInvoker.java:[line 711] Unsynchronized access at SocketServerInvoker.java:[line 702] Unsynchronized access at SocketServerInvoker.java:[line 713] Unsynchronized access at SocketServerInvoker.java:[line 704] Unsynchronized access at SocketServerInvoker.java:[line 706] Unsynchronized access at SocketServerInvoker.java:[line 707] Synchronized access at SocketServerInvoker.java:[line 442] Synchronized access at SocketServerInvoker.java:[line 444] Synchronized access at SocketServerInvoker.java:[line 299] Synchronized access at SocketServerInvoker.java:[line 290] Synchronized access at SocketServerInvoker.java:[line 301] Synchronized access at SocketServerInvoker.java:[line 292] Synchronized access at SocketServerInvoker.java:[line 294] Synchronized access at SocketServerInvoker.java:[line 295] Synchronized access at SocketServerInvoker.java:[line 127] Synchronized access at SocketServerInvoker.java:[line 127]
ML | org.jboss.remoting.transport.socket.MicroSocketClientInvoker.initPool() synchronizes on updated field MicroSocketClientInvoker.pool
| Bug type ML_SYNC_ON_UPDATED_FIELD (click for details) In class org.jboss.remoting.transport.socket.MicroSocketClientInvoker In method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.initPool() Field org.jboss.remoting.transport.socket.MicroSocketClientInvoker.pool At MicroSocketClientInvoker.java:[line 1098]
NN | Naked notify in org.jboss.remoting.transport.bisocket.BisocketClientInvoker.handleDisconnect()
| Bug type NN_NAKED_NOTIFY (click for details) In class org.jboss.remoting.transport.bisocket.BisocketClientInvoker In method org.jboss.remoting.transport.bisocket.BisocketClientInvoker.handleDisconnect() At BisocketClientInvoker.java:[line 416]
SC | new org.jboss.remoting.samples.callback.CallbackServer$SampleInvocationHandler() invokes Thread.start()
| Bug type SC_START_IN_CTOR (click for details) In class org.jboss.remoting.samples.callback.CallbackServer$SampleInvocationHandler In method new org.jboss.remoting.samples.callback.CallbackServer$SampleInvocationHandler() Called method Thread.start() At CallbackServer.java:[line 140]
SC | new org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler() invokes Thread.start()
| Bug type SC_START_IN_CTOR (click for details) In class org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler In method new org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler() Called method Thread.start() At CallbackServer.java:[line 140]
SC | new org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler() invokes Thread.start()
| Bug type SC_START_IN_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler In method new org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler() Called method Thread.start() At MultiplexInvokerServer.java:[line 123]
SWL | org.jboss.remoting.transport.socket.SocketServerInvoker.refreshServerSocket() calls Thread.sleep() with a lock held
| Bug type SWL_SLEEP_WITH_LOCK_HELD (click for details) In class org.jboss.remoting.transport.socket.SocketServerInvoker In method org.jboss.remoting.transport.socket.SocketServerInvoker.refreshServerSocket() At SocketServerInvoker.java:[line 193]
UW | Unconditional wait in org.jboss.remoting.callback.BlockingCallbackStore.add(Serializable)
| Bug type UW_UNCOND_WAIT (click for details) In class org.jboss.remoting.callback.BlockingCallbackStore In method org.jboss.remoting.callback.BlockingCallbackStore.add(Serializable) At BlockingCallbackStore.java:[line 102]
Wa | Wait not in loop in org.jboss.remoting.callback.BlockingCallbackStore.add(Serializable)
| Bug type WA_NOT_IN_LOOP (click for details) In class org.jboss.remoting.callback.BlockingCallbackStore In method org.jboss.remoting.callback.BlockingCallbackStore.add(Serializable) At BlockingCallbackStore.java:[line 102]
Wa | Wait not in loop in org.jboss.remoting.transport.multiplex.SocketId.getFreePort()
| Bug type WA_NOT_IN_LOOP (click for details) In class org.jboss.remoting.transport.multiplex.SocketId In method org.jboss.remoting.transport.multiplex.SocketId.getFreePort() At SocketId.java:[line 244]

## Performance Warnings

Code | Warning
--- | ---
Bx | Method org.jboss.remoting.callback.CallbackStoreWrapper$9.run() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.callback.CallbackStoreWrapper$9 In method org.jboss.remoting.callback.CallbackStoreWrapper$9.run() Called method new Integer(int) Should call Integer.valueOf(int) instead At CallbackStoreWrapper.java:[line 229]
Bx | Method org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler.run() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler In method org.jboss.remoting.samples.callback.statistics.CallbackServer$SampleInvocationHandler.run() Called method new Integer(int) Should call Integer.valueOf(int) instead At CallbackServer.java:[line 194]
Bx | Method org.jboss.remoting.samples.config.factories.FactoryConfigSample$SampleInvocationHandler.addListener(InvokerCallbackHandler) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.config.factories.FactoryConfigSample$SampleInvocationHandler In method org.jboss.remoting.samples.config.factories.FactoryConfigSample$SampleInvocationHandler.addListener(InvokerCallbackHandler) Called method new Integer(int) Should call Integer.valueOf(int) instead At FactoryConfigSample.java:[line 678]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Client2Server1.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client2Server1 In method org.jboss.remoting.samples.multiplex.invoker.Client2Server1.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Client2Server1.java:[line 138]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Client2Server2.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client2Server2 In method org.jboss.remoting.samples.multiplex.invoker.Client2Server2.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Client2Server2.java:[line 138]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Client3Server1.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Client3Server1 In method org.jboss.remoting.samples.multiplex.invoker.Client3Server1.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Client3Server1.java:[line 136]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler.run() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler In method org.jboss.remoting.samples.multiplex.invoker.MultiplexInvokerServer$SampleInvocationHandler.run() Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexInvokerServer.java:[line 187]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Server2Client1.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server2Client1 In method org.jboss.remoting.samples.multiplex.invoker.Server2Client1.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Server2Client1.java:[line 130]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Server2Client2.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server2Client2 In method org.jboss.remoting.samples.multiplex.invoker.Server2Client2.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Server2Client2.java:[line 128]
Bx | Method org.jboss.remoting.samples.multiplex.invoker.Server3Client1.makeClientCall() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.invoker.Server3Client1 In method org.jboss.remoting.samples.multiplex.invoker.Server3Client1.makeClientCall() Called method new Integer(int) Should call Integer.valueOf(int) instead At Server3Client1.java:[line 130]
Bx | Method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient.runPrimeScenario() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient.runPrimeScenario() Called method new Integer(int) Should call Integer.valueOf(int) instead At PrimeScenarioExampleClient.java:[line 58]
Bx | Method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread.run() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread In method org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread.run() Called method new Integer(int) Should call Integer.valueOf(int) instead At PrimeScenarioExampleServer.java:[line 102]
Bx | Method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler In method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.handleStream(InputStream, InvocationRequest) Called method new Long(long) Should call Long.valueOf(long) instead At StreamingServer.java:[line 163]
Bx | Method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.invoke(InvocationRequest) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler In method org.jboss.remoting.samples.stream.StreamingServer$TestStreamInvocationHandler.invoke(InvocationRequest) Called method new Long(long) Should call Long.valueOf(long) instead At StreamingServer.java:[line 179]
Bx | Method org.jboss.remoting.ServerInvoker.invoke(InvocationRequest) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.ServerInvoker In method org.jboss.remoting.ServerInvoker.invoke(InvocationRequest) Called method new Long(long) Should call Long.valueOf(long) instead At ServerInvoker.java:[line 831]
Bx | Method org.jboss.remoting.stream.StreamHandler.mark(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.stream.StreamHandler In method org.jboss.remoting.stream.StreamHandler.mark(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At StreamHandler.java:[line 256]
Bx | Method org.jboss.remoting.stream.StreamHandler.skip(long) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.stream.StreamHandler In method org.jboss.remoting.stream.StreamHandler.skip(long) Called method new Long(long) Should call Long.valueOf(long) instead At StreamHandler.java:[line 291]
Bx | Method org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.stream.StreamServer$Handler In method org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) Called method new Integer(int) Should call Integer.valueOf(int) instead At StreamServer.java:[line 212] Another occurrence at StreamServer.java:[line 217] Another occurrence at StreamServer.java:[line 258]
Bx | Method org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.stream.StreamServer$Handler In method org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) Called method new Long(long) Should call Long.valueOf(long) instead At StreamServer.java:[line 250]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.createControlConnection(String, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.createControlConnection(String, boolean) Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 455] Another occurrence at BisocketServerInvoker.java:[line 459]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryBindPort(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryBindPort(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 541]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryBindPorts(String) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryBindPorts(String) Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 571]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryConnectPort(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryConnectPort(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 589]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryConnectPorts(String) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setSecondaryConnectPorts(String) Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 619]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setup() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.setup() Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 722]
Bx | Method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.start() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker In method org.jboss.remoting.transport.bisocket.BisocketServerInvoker.start() Called method new Integer(int) Should call Integer.valueOf(int) instead At BisocketServerInvoker.java:[line 220] Another occurrence at BisocketServerInvoker.java:[line 225]
Bx | Method org.jboss.remoting.transport.coyote.CoyoteInvoker.addLeaseInfo(ResponseMap) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.addLeaseInfo(ResponseMap) Called method new Long(long) Should call Long.valueOf(long) instead At CoyoteInvoker.java:[line 498]
Bx | Method org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport.getKeySize() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport In method org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport.getKeySize() Called method new Integer(int) Should call Integer.valueOf(int) instead At RemotingSSLSupport.java:[line 193]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) Called method new Integer(int) Should call Integer.valueOf(int) instead At HTTPClientInvoker.java:[line 508]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) Called method new Long(long) Should call Long.valueOf(long) instead At HTTPClientInvoker.java:[line 538]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker.getSimulatedTimeout(Map, Map, HttpURLConnection) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.getSimulatedTimeout(Map, Map, HttpURLConnection) Called method new Integer(int) Should call Integer.valueOf(int) instead At HTTPClientInvoker.java:[line 697] Another occurrence at HTTPClientInvoker.java:[line 699]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker.setChunked(Map, HttpURLConnection) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.setChunked(Map, HttpURLConnection) Called method new Integer(int) Should call Integer.valueOf(int) instead At HTTPClientInvoker.java:[line 621]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller) Called method new Integer(int) Should call Integer.valueOf(int) instead At HTTPClientInvoker.java:[line 326] Another occurrence at HTTPClientInvoker.java:[line 375] Another occurrence at HTTPClientInvoker.java:[line 408]
Bx | Method org.jboss.remoting.transport.http.HTTPClientInvoker$6.run() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker$6 In method org.jboss.remoting.transport.http.HTTPClientInvoker$6.run() Called method new Integer(int) Should call Integer.valueOf(int) instead At HTTPClientInvoker.java:[line 1278]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setInputBufferSize(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setInputBufferSize(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1195]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setInputMaxErrors(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setInputMaxErrors(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1209]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setMaxAcceptErrors(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setMaxAcceptErrors(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1223]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxChunkSize(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxChunkSize(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1268]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxDataSlice(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxDataSlice(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1282]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxTimeSlice(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMaxTimeSlice(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1296]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMessagePoolSize(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMessagePoolSize(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1310]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMessageSize(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setOutputMessageSize(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1324]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownMonitorPeriod(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownMonitorPeriod(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1353]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownRefusalsMaximum(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownRefusalsMaximum(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1367]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownRequestTimeout(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setShutdownRequestTimeout(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1381]
Bx | Method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setStaticThreadsMonitorPeriod(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setStaticThreadsMonitorPeriod(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MultiplexServerInvoker.java:[line 1395]
Bx | Method org.jboss.remoting.transport.multiplex.SocketId.freePort(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.SocketId In method org.jboss.remoting.transport.multiplex.SocketId.freePort(int) Called method new Integer(int) Should call Integer.valueOf(int) instead At SocketId.java:[line 225]
Bx | Method org.jboss.remoting.transport.multiplex.SocketId.getFreePort() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.multiplex.SocketId In method org.jboss.remoting.transport.multiplex.SocketId.getFreePort() Called method new Integer(int) Should call Integer.valueOf(int) instead At SocketId.java:[line 253] Another occurrence at SocketId.java:[line 265]
Bx | Method org.jboss.remoting.transport.PortUtil.getFreePort(String) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.PortUtil In method org.jboss.remoting.transport.PortUtil.getFreePort(String) Called method new Integer(int) Should call Integer.valueOf(int) instead At PortUtil.java:[line 163]
Bx | Method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.createClientSocket(Socket, int, Map) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.socket.MicroSocketClientInvoker In method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.createClientSocket(Socket, int, Map) Called method new Integer(int) Should call Integer.valueOf(int) instead At MicroSocketClientInvoker.java:[line 1216]
Bx | Method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.getConnection(Marshaller, UnMarshaller, boolean, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.socket.MicroSocketClientInvoker In method org.jboss.remoting.transport.socket.MicroSocketClientInvoker.getConnection(Marshaller, UnMarshaller, boolean, int) Called method new Integer(int) Should call Integer.valueOf(int) instead At MicroSocketClientInvoker.java:[line 1183] Another occurrence at MicroSocketClientInvoker.java:[line 1192]
Bx | Method org.jboss.remoting.transport.socket.ServerThread.createServerSocketWrapper(Socket, int, Map) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.socket.ServerThread In method org.jboss.remoting.transport.socket.ServerThread.createServerSocketWrapper(Socket, int, Map) Called method new Integer(int) Should call Integer.valueOf(int) instead At ServerThread.java:[line 957] Another occurrence at ServerThread.java:[line 960]
Bx | Method org.jboss.remoting.transport.socket.SocketClientInvoker.createClientSocket(Socket, int, Map) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.socket.SocketClientInvoker In method org.jboss.remoting.transport.socket.SocketClientInvoker.createClientSocket(Socket, int, Map) Called method new Integer(int) Should call Integer.valueOf(int) instead At SocketClientInvoker.java:[line 175]
Bx | Method org.jboss.remoting.transport.web.WebServerInvoker.addLeaseInfo(Map) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.transport.web.WebServerInvoker In method org.jboss.remoting.transport.web.WebServerInvoker.addLeaseInfo(Map) Called method new Long(long) Should call Long.valueOf(long) instead At WebServerInvoker.java:[line 179]
Bx | Method org.jboss.remoting.Version.<static initializer>() invokes inefficient new Byte(byte) constructor; use Byte.valueOf(byte) instead
| Bug type DM_NUMBER_CTOR (click for details) In class org.jboss.remoting.Version In method org.jboss.remoting.Version.<static initializer>() Called method new Byte(byte) Should call Byte.valueOf(byte) instead At Version.java:[line 108]
Dm | org.jboss.remoting.callback.CallbackStore$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.callback.CallbackStore$1 In method org.jboss.remoting.callback.CallbackStore$1.run() At CallbackStore.java:[line 213]
Dm | org.jboss.remoting.callback.CallbackStore$2.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.callback.CallbackStore$2 In method org.jboss.remoting.callback.CallbackStore$2.run() At CallbackStore.java:[line 401]
Dm | org.jboss.remoting.callback.CallbackStore$5.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.callback.CallbackStore$5 In method org.jboss.remoting.callback.CallbackStore$5.run() At CallbackStore.java:[line 560]
Dm | org.jboss.remoting.callback.CallbackStoreWrapper$5.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.callback.CallbackStoreWrapper$5 In method org.jboss.remoting.callback.CallbackStoreWrapper$5.run() At CallbackStoreWrapper.java:[line 159]
Dm | org.jboss.remoting.callback.ServerInvokerCallbackHandler$1.run() forces garbage collection; extremely dubious except in benchmarking code
| Bug type DM_GC (click for details) In class org.jboss.remoting.callback.ServerInvokerCallbackHandler$1 In method org.jboss.remoting.callback.ServerInvokerCallbackHandler$1.run() At ServerInvokerCallbackHandler.java:[line 670]
Dm | org.jboss.remoting.callback.ServerInvokerCallbackHandler$2.run() forces garbage collection; extremely dubious except in benchmarking code
| Bug type DM_GC (click for details) In class org.jboss.remoting.callback.ServerInvokerCallbackHandler$2 In method org.jboss.remoting.callback.ServerInvokerCallbackHandler$2.run() At ServerInvokerCallbackHandler.java:[line 772]
Dm | org.jboss.remoting.callback.ServerInvokerCallbackHandler$4.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.callback.ServerInvokerCallbackHandler$4 In method org.jboss.remoting.callback.ServerInvokerCallbackHandler$4.run() At ServerInvokerCallbackHandler.java:[line 1094]
Dm | org.jboss.remoting.ident.Identity$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.ident.Identity$1 In method org.jboss.remoting.ident.Identity$1.run() At Identity.java:[line 363]
Dm | org.jboss.remoting.ident.Identity$2.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.ident.Identity$2 In method org.jboss.remoting.ident.Identity$2.run() At Identity.java:[line 379]
Dm | org.jboss.remoting.ident.Identity$5.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.ident.Identity$5 In method org.jboss.remoting.ident.Identity$5.run() At Identity.java:[line 442]
Dm | org.jboss.remoting.ident.Identity$6.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.ident.Identity$6 In method org.jboss.remoting.ident.Identity$6.run() At Identity.java:[line 460]
Dm | org.jboss.remoting.InvokerLocator.setUseLegacyParsing(boolean) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.InvokerLocator In method org.jboss.remoting.InvokerLocator.setUseLegacyParsing(boolean) At InvokerLocator.java:[line 115]
Dm | org.jboss.remoting.loading.ClassByteClassLoader$2.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.loading.ClassByteClassLoader$2 In method org.jboss.remoting.loading.ClassByteClassLoader$2.run() At ClassByteClassLoader.java:[line 481]
Dm | org.jboss.remoting.loading.CompressedClassBytes.main(String[]) invokes inefficient new String(String) constructor
| Bug type DM_STRING_CTOR (click for details) In class org.jboss.remoting.loading.CompressedClassBytes In method org.jboss.remoting.loading.CompressedClassBytes.main(String[]) At CompressedClassBytes.java:[line 81]
Dm | org.jboss.remoting.loading.CompressedClassBytes$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.loading.CompressedClassBytes$1 In method org.jboss.remoting.loading.CompressedClassBytes$1.run() At CompressedClassBytes.java:[line 46]
Dm | org.jboss.remoting.network.NetworkRegistryQuery$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.network.NetworkRegistryQuery$1 In method org.jboss.remoting.network.NetworkRegistryQuery$1.run() At NetworkRegistryQuery.java:[line 83]
Dm | org.jboss.remoting.network.NetworkRegistryWrapper$4.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.network.NetworkRegistryWrapper$4 In method org.jboss.remoting.network.NetworkRegistryWrapper$4.run() At NetworkRegistryWrapper.java:[line 125]
Dm | org.jboss.remoting.security.CustomSSLServerSocketFactory$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.security.CustomSSLServerSocketFactory$1 In method org.jboss.remoting.security.CustomSSLServerSocketFactory$1.run() At CustomSSLServerSocketFactory.java:[line 185]
Dm | org.jboss.remoting.security.CustomSSLServerSocketFactory$2.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.security.CustomSSLServerSocketFactory$2 In method org.jboss.remoting.security.CustomSSLServerSocketFactory$2.run() At CustomSSLServerSocketFactory.java:[line 193]
Dm | org.jboss.remoting.security.CustomSSLServerSocketFactory$3.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.security.CustomSSLServerSocketFactory$3 In method org.jboss.remoting.security.CustomSSLServerSocketFactory$3.run() At CustomSSLServerSocketFactory.java:[line 201]
Dm | org.jboss.remoting.security.SSLSocketBuilder$2.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.security.SSLSocketBuilder$2 In method org.jboss.remoting.security.SSLSocketBuilder$2.run() At SSLSocketBuilder.java:[line 1641]
Dm | org.jboss.remoting.ServerInvoker.invoke(InvocationRequest) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.ServerInvoker In method org.jboss.remoting.ServerInvoker.invoke(InvocationRequest) At ServerInvoker.java:[line 818] Another occurrence at ServerInvoker.java:[line 833]
Dm | org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.stream.StreamServer$Handler In method org.jboss.remoting.stream.StreamServer$Handler.invoke(InvocationRequest) At StreamServer.java:[line 235]
Dm | org.jboss.remoting.transport.coyote.CoyoteInvoker.<static initializer>() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.<static initializer>() At CoyoteInvoker.java:[line 88] Another occurrence at CoyoteInvoker.java:[line 89]
Dm | org.jboss.remoting.transport.coyote.CoyoteInvoker.addLeaseInfo(ResponseMap) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.addLeaseInfo(ResponseMap) At CoyoteInvoker.java:[line 493]
Dm | org.jboss.remoting.transport.coyote.CoyoteInvoker.setProperty(Object, String, String) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.setProperty(Object, String, String) At CoyoteInvoker.java:[line 1135]
Dm | org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.checkForLeasePing(HttpURLConnection, Object, Map) At HTTPClientInvoker.java:[line 523] Another occurrence at HTTPClientInvoker.java:[line 539]
Dm | org.jboss.remoting.transport.http.ssl.HTTPSClientInvoker$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.http.ssl.HTTPSClientInvoker$1 In method org.jboss.remoting.transport.http.ssl.HTTPSClientInvoker$1.run() At HTTPSClientInvoker.java:[line 189]
Dm | org.jboss.remoting.transport.web.WebServerInvoker.addLeaseInfo(Map) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.transport.web.WebServerInvoker In method org.jboss.remoting.transport.web.WebServerInvoker.addLeaseInfo(Map) At WebServerInvoker.java:[line 174]
Dm | org.jboss.remoting.util.SecurityUtility$1.run() invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
| Bug type DM_BOOLEAN_CTOR (click for details) In class org.jboss.remoting.util.SecurityUtility$1 In method org.jboss.remoting.util.SecurityUtility$1.run() At SecurityUtility.java:[line 52]
SBSC | Method org.jboss.remoting.detection.Detection.toString() concatenates strings using + in a loop
| Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details) In class org.jboss.remoting.detection.Detection In method org.jboss.remoting.detection.Detection.toString() At Detection.java:[line 72]
SBSC | Method org.jboss.remoting.detection.ServerInvokerMetadata.toString() concatenates strings using + in a loop
| Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details) In class org.jboss.remoting.detection.ServerInvokerMetadata In method org.jboss.remoting.detection.ServerInvokerMetadata.toString() At ServerInvokerMetadata.java:[line 64]
SBSC | Method org.jboss.remoting.samples.transporter.complex.Doctor.toString() concatenates strings using + in a loop
| Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details) In class org.jboss.remoting.samples.transporter.complex.Doctor In method org.jboss.remoting.samples.transporter.complex.Doctor.toString() At Doctor.java:[line 71]
SBSC | Method org.jboss.remoting.transport.Connector.getInvokerConfigFromServerConfiguration(Map) concatenates strings using + in a loop
| Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details) In class org.jboss.remoting.transport.Connector In method org.jboss.remoting.transport.Connector.getInvokerConfigFromServerConfiguration(Map) At Connector.java:[line 864]
SBSC | Method org.jboss.remoting.transport.Connector.getInvokerConfigFromXML(Map) concatenates strings using + in a loop
| Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details) In class org.jboss.remoting.transport.Connector In method org.jboss.remoting.transport.Connector.getInvokerConfigFromXML(Map) At Connector.java:[line 654]
SIC | Should org.jboss.remoting.AbstractInvoker$CallbackHandlerHolder be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.AbstractInvoker$CallbackHandlerHolder At AbstractInvoker.java:[lines 532-550]
SIC | Should org.jboss.remoting.AbstractInvoker$CallbackLocatorHolder be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.AbstractInvoker$CallbackLocatorHolder At AbstractInvoker.java:[lines 560-572]
SIC | Should org.jboss.remoting.callback.NullCallbackStore$FailedCallback be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.callback.NullCallbackStore$FailedCallback At NullCallbackStore.java:[lines 161-167]
SIC | Should org.jboss.remoting.detection.AbstractDetector$Server be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.detection.AbstractDetector$Server At AbstractDetector.java:[lines 721-761]
SIC | Should org.jboss.remoting.loading.ClassByteClassLoader$MyRef be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.loading.ClassByteClassLoader$MyRef At ClassByteClassLoader.java:[lines 94-102]
SIC | Should org.jboss.remoting.samples.callback.CallbackClient$CallbackHandler be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.samples.callback.CallbackClient$CallbackHandler At CallbackClient.java:[lines 202-217]
SIC | Should org.jboss.remoting.samples.callback.statistics.CallbackClient$CallbackHandler be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.samples.callback.statistics.CallbackClient$CallbackHandler At CallbackClient.java:[lines 99-113]
SIC | Should org.jboss.remoting.samples.chat.client.RemoteStrategyRemoting$ChatServerStub be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.samples.chat.client.RemoteStrategyRemoting$ChatServerStub At RemoteStrategyRemoting.java:[lines 260-322]
SIC | Should org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient$AsynchronousThread be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleClient$AsynchronousThread At PrimeScenarioExampleClient.java:[lines 76-104]
SIC | Should org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.samples.multiplex.PrimeScenarioExampleServer$AsynchronousThread At PrimeScenarioExampleServer.java:[lines 84-112]
SIC | Should org.jboss.remoting.security.SSLSocketBuilder$NullStoreURLException be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.security.SSLSocketBuilder$NullStoreURLException At SSLSocketBuilder.java:[lines 1741-1743]
SIC | Should org.jboss.remoting.ServerInvoker$CallbackContainer be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.ServerInvoker$CallbackContainer At ServerInvoker.java:[lines 2166-2178]
SIC | Should org.jboss.remoting.transport.bisocket.BisocketServerInvoker$SecondaryServerSocketThread be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.transport.bisocket.BisocketServerInvoker$SecondaryServerSocketThread At BisocketServerInvoker.java:[lines 1091-1179]
SIC | Should org.jboss.remoting.transport.http.ssl.HTTPSClientInvoker$AnyhostVerifier be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.transport.http.ssl.HTTPSClientInvoker$AnyhostVerifier At HTTPSClientInvoker.java:[lines 232-237]
SIC | Should org.jboss.remoting.transport.multiplex.VirtualServerSocket$PendingClose be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.transport.multiplex.VirtualServerSocket$PendingClose At VirtualServerSocket.java:[lines 812-819]
SIC | Should org.jboss.remoting.transport.multiplex.VirtualSocket$PendingClose be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.transport.multiplex.VirtualSocket$PendingClose At VirtualSocket.java:[lines 1338-1345]
SIC | Should org.jboss.remoting.transport.multiplex.VirtualSocket$PendingRemoteDisconnect be a _static_ inner class?
| Bug type SIC_INNER_SHOULD_BE_STATIC (click for details) In class org.jboss.remoting.transport.multiplex.VirtualSocket$PendingRemoteDisconnect At VirtualSocket.java:[lines 1319-1331]
UrF | Unread field: org.jboss.remoting.samples.chat.client.LocalStrategy$3.remoteChatServerWrapper
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.samples.chat.client.LocalStrategy$3 Field org.jboss.remoting.samples.chat.client.LocalStrategy$3.remoteChatServerWrapper At LocalStrategy.java:[line 171]
UrF | Unread field: org.jboss.remoting.transport.coyote.InputBuffer.bytesRead
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.coyote.InputBuffer Field org.jboss.remoting.transport.coyote.InputBuffer.bytesRead At InputBuffer.java:[line 79]
UrF | Unread field: org.jboss.remoting.transport.coyote.InputBuffer.charsRead
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.coyote.InputBuffer Field org.jboss.remoting.transport.coyote.InputBuffer.charsRead At InputBuffer.java:[line 85]
UrF | Unread field: org.jboss.remoting.transport.coyote.InputBuffer.inputChunk
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.coyote.InputBuffer Field org.jboss.remoting.transport.coyote.InputBuffer.inputChunk At InputBuffer.java:[line 97]
UrF | Unread field: org.jboss.remoting.transport.multiplex.InputMultiplexor$MultiGroupInputThread.info
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.InputMultiplexor$MultiGroupInputThread Field org.jboss.remoting.transport.multiplex.InputMultiplexor$MultiGroupInputThread.info At InputMultiplexor.java:[line 145]
UrF | Unread field: org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread.debug
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread Field org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread.debug At InputMultiplexor.java:[line 523]
UrF | Unread field: org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread.info
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread Field org.jboss.remoting.transport.multiplex.InputMultiplexor$SingleGroupInputThread.info At InputMultiplexor.java:[line 524]
UrF | Unread field: org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager$ShutdownMonitorTimerTask.cancelled
| Bug type URF_UNREAD_FIELD (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager$ShutdownMonitorTimerTask Field org.jboss.remoting.transport.multiplex.MultiplexingManager$ShutdownManager$ShutdownMonitorTimerTask.cancelled At MultiplexingManager.java:[line 2391]
WMI | Method org.jboss.remoting.ServerInvoker.getMBeanObjectName() makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.ServerInvoker In method org.jboss.remoting.ServerInvoker.getMBeanObjectName() At ServerInvoker.java:[line 1054]
WMI | Method org.jboss.remoting.transport.Connector.configureHandlersFromServerConfiguration() makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.Connector In method org.jboss.remoting.transport.Connector.configureHandlersFromServerConfiguration() At Connector.java:[line 907]
WMI | Method org.jboss.remoting.transport.Connector.getInvokerConfigFromServerConfiguration(Map) makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.Connector In method org.jboss.remoting.transport.Connector.getInvokerConfigFromServerConfiguration(Map) At Connector.java:[line 856]
WMI | Method org.jboss.remoting.transport.Connector.getInvokerConfigFromXML(Map) makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.Connector In method org.jboss.remoting.transport.Connector.getInvokerConfigFromXML(Map) At Connector.java:[line 680]
WMI | Method org.jboss.remoting.transport.coyote.CoyoteInvoker.setup() makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.setup() At CoyoteInvoker.java:[line 195]
WMI | Method org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller) makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller) At HTTPClientInvoker.java:[line 313]
WMI | Method org.jboss.remoting.transport.multiplex.Protocol$BackChannelThread.doRun() makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.multiplex.Protocol$BackChannelThread In method org.jboss.remoting.transport.multiplex.Protocol$BackChannelThread.doRun() At Protocol.java:[line 455]
WMI | Method org.jboss.remoting.transport.servlet.ServletServerInvoker.processRequest(HttpServletRequest, HttpServletResponse) makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.servlet.ServletServerInvoker In method org.jboss.remoting.transport.servlet.ServletServerInvoker.processRequest(HttpServletRequest, HttpServletResponse) At ServletServerInvoker.java:[line 144] Another occurrence at ServletServerInvoker.java:[line 165]
WMI | Method org.jboss.remoting.transport.servlet.ServletServerInvoker.processRequest(HttpServletRequest, byte[], HttpServletResponse) makes inefficient use of keySet iterator instead of entrySet iterator
| Bug type WMI_WRONG_MAP_ITERATOR (click for details) In class org.jboss.remoting.transport.servlet.ServletServerInvoker In method org.jboss.remoting.transport.servlet.ServletServerInvoker.processRequest(HttpServletRequest, byte[], HttpServletResponse) At ServletServerInvoker.java:[line 305]

## Dodgy Warnings

Code | Warning
--- | ---
BC | Unchecked/unconfirmed cast from java.net.Socket to javax.net.ssl.SSLSocket in org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory.handshake(Socket)
| Bug type BC_UNCONFIRMED_CAST (click for details) In class org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory In method org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory.handshake(Socket) Actual type java.net.Socket Expected javax.net.ssl.SSLSocket Value loaded from sock At RemotingServerSocketFactory.java:[line 202]
BC | Unchecked/unconfirmed cast from java.net.Socket to javax.net.ssl.SSLSocket in org.jboss.remoting.transport.coyote.ssl.RemotingSSLImplementation.getSSLSupport(Socket)
| Bug type BC_UNCONFIRMED_CAST (click for details) In class org.jboss.remoting.transport.coyote.ssl.RemotingSSLImplementation In method org.jboss.remoting.transport.coyote.ssl.RemotingSSLImplementation.getSSLSupport(Socket) Actual type java.net.Socket Expected javax.net.ssl.SSLSocket Value loaded from sock At RemotingSSLImplementation.java:[line 59]
DLS | Dead store to obj in org.jboss.remoting.loading.CompressedClassBytes.main(String[])
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.loading.CompressedClassBytes In method org.jboss.remoting.loading.CompressedClassBytes.main(String[]) Local variable named obj At CompressedClassBytes.java:[line 92]
DLS | Dead store to count in org.jboss.remoting.loading.CompressedClassBytes.readExternal(ObjectInput)
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.loading.CompressedClassBytes In method org.jboss.remoting.loading.CompressedClassBytes.readExternal(ObjectInput) Local variable named count At CompressedClassBytes.java:[line 114]
DLS | Dead store to CloseableFrame in org.jboss.remoting.samples.chat.client.CloseableFrame.main(String[])
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.samples.chat.client.CloseableFrame In method org.jboss.remoting.samples.chat.client.CloseableFrame.main(String[]) Local variable named CloseableFrame At CloseableFrame.java:[line 61]
DLS | Dead store to backChat in org.jboss.remoting.samples.chat.client.TalkFrame.main(String[])
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.samples.chat.client.TalkFrame In method org.jboss.remoting.samples.chat.client.TalkFrame.main(String[]) Local variable named backChat Did you mean to refer to the field org.jboss.remoting.samples.chat.client.TalkFrame.backChat? At TalkFrame.java:[line 161]
DLS | Dead store to backChat in new org.jboss.remoting.samples.chat.server.CallbackThread(InvokerCallbackHandler, ShutDownGate, ReadWriteArrayList)
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.samples.chat.server.CallbackThread In method new org.jboss.remoting.samples.chat.server.CallbackThread(InvokerCallbackHandler, ShutDownGate, ReadWriteArrayList) Local variable named backChat At CallbackThread.java:[line 42]
DLS | Dead store to chatManagerLauncher in org.jboss.remoting.samples.chat.server.ChatManagerLauncher.main(String[])
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.samples.chat.server.ChatManagerLauncher In method org.jboss.remoting.samples.chat.server.ChatManagerLauncher.main(String[]) Local variable named chatManagerLauncher At ChatManagerLauncher.java:[line 55]
DLS | Dead store to locatorURI in org.jboss.remoting.samples.stream.StreamingClient.main(String[])
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.samples.stream.StreamingClient In method org.jboss.remoting.samples.stream.StreamingClient.main(String[]) Local variable named locatorURI Did you mean to refer to the field org.jboss.remoting.samples.stream.StreamingClient.locatorURI? At StreamingClient.java:[line 131]
DLS | Dead store to originalPort in org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setBindingInfo()
| Bug type DLS_DEAD_LOCAL_STORE (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setBindingInfo() Local variable named originalPort At MultiplexServerInvoker.java:[line 1110] Another occurrence at MultiplexServerInvoker.java:[line 1114]
DMI | org.jboss.remoting.InvokerLocator.legacyParse(String) invokes substring(0), which returns the original value
| Bug type DMI_USELESS_SUBSTRING (click for details) In class org.jboss.remoting.InvokerLocator In method org.jboss.remoting.InvokerLocator.legacyParse(String) At InvokerLocator.java:[line 484]
DMI | org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setBindingInfo() invokes substring(0), which returns the original value
| Bug type DMI_USELESS_SUBSTRING (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexServerInvoker In method org.jboss.remoting.transport.multiplex.MultiplexServerInvoker.setBindingInfo() At MultiplexServerInvoker.java:[line 1125]
Eq | org.jboss.remoting.network.NetworkInstance.equals(Object) is unusual
| Bug type EQ_UNUSUAL (click for details) In class org.jboss.remoting.network.NetworkInstance In method org.jboss.remoting.network.NetworkInstance.equals(Object) At NetworkInstance.java:[line 104]
IA | Ambiguous invocation of either an outer or inherited method java.util.TimerTask.cancel() in org.jboss.remoting.ConnectionValidator$WaitOnConnectionCheckTimerTask.run()
| Bug type IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD (click for details) In class org.jboss.remoting.ConnectionValidator$WaitOnConnectionCheckTimerTask In method org.jboss.remoting.ConnectionValidator$WaitOnConnectionCheckTimerTask.run() Inherited method java.util.TimerTask.cancel() Did you intend to invoke org.jboss.remoting.ConnectionValidator.cancel() At ConnectionValidator.java:[line 913]
ICAST | integral division result cast to double or float in org.jboss.remoting.callback.ServerInvokerCallbackHandler.isMemLow()
| Bug type ICAST_IDIV_CAST_TO_DOUBLE (click for details) In class org.jboss.remoting.callback.ServerInvokerCallbackHandler In method org.jboss.remoting.callback.ServerInvokerCallbackHandler.isMemLow() At ServerInvokerCallbackHandler.java:[line 897]
NP | Load of known null value in org.jboss.remoting.Client.addCallbackListener(InvokerCallbackHandler, Map, InvokerLocator, Object)
| Bug type NP_LOAD_OF_KNOWN_NULL_VALUE (click for details) In class org.jboss.remoting.Client In method org.jboss.remoting.Client.addCallbackListener(InvokerCallbackHandler, Map, InvokerLocator, Object) At Client.java:[line 1958]
NP | Possible null pointer dereference in org.jboss.remoting.Client.addConnectionListener(ConnectionListener, Map) due to return value of called method
| Bug type NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE (click for details) In class org.jboss.remoting.Client In method org.jboss.remoting.Client.addConnectionListener(ConnectionListener, Map) Value contained in org.jboss.remoting.Client.connectionValidator Dereferenced at Client.java:[line 467] Known null at Client.java:[line 467]
NP | Load of known null value in org.jboss.remoting.InvokerRegistry.loadClientInvoker(String, InvokerLocator, Map)
| Bug type NP_LOAD_OF_KNOWN_NULL_VALUE (click for details) In class org.jboss.remoting.InvokerRegistry In method org.jboss.remoting.InvokerRegistry.loadClientInvoker(String, InvokerLocator, Map) At InvokerRegistry.java:[line 457]
NP | Load of known null value in org.jboss.remoting.InvokerRegistry.loadServerInvoker(String, InvokerLocator, Map)
| Bug type NP_LOAD_OF_KNOWN_NULL_VALUE (click for details) In class org.jboss.remoting.InvokerRegistry In method org.jboss.remoting.InvokerRegistry.loadServerInvoker(String, InvokerLocator, Map) At InvokerRegistry.java:[line 478]
NP | Load of known null value in org.jboss.remoting.transport.http.HTTPClientInvoker.handleConnect()
| Bug type NP_LOAD_OF_KNOWN_NULL_VALUE (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.handleConnect() At HTTPClientInvoker.java:[line 969]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.detection.jndi.JNDIDetector.verifyJNDIServer()
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.detection.jndi.JNDIDetector In method org.jboss.remoting.detection.jndi.JNDIDetector.verifyJNDIServer() At JNDIDetector.java:[line 458]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.samples.detection.jndi.SimpleJNDIServer.setupJNDIServer()
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.samples.detection.jndi.SimpleJNDIServer In method org.jboss.remoting.samples.detection.jndi.SimpleJNDIServer.setupJNDIServer() At SimpleJNDIServer.java:[line 104]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.samples.transporter.custom.server.JNDIServer.main(String[])
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.samples.transporter.custom.server.JNDIServer In method org.jboss.remoting.samples.transporter.custom.server.JNDIServer.main(String[]) At JNDIServer.java:[line 55]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.transport.AddressUtil.checkAddress(String, int)
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.transport.AddressUtil In method org.jboss.remoting.transport.AddressUtil.checkAddress(String, int) At AddressUtil.java:[line 73]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.transport.coyote.CoyoteInvoker.setProperty(Object, String, String)
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.transport.coyote.CoyoteInvoker In method org.jboss.remoting.transport.coyote.CoyoteInvoker.setProperty(Object, String, String) At CoyoteInvoker.java:[line 1178]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport.getX509Certificates(SSLSession)
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport In method org.jboss.remoting.transport.coyote.ssl.RemotingSSLSupport.getX509Certificates(SSLSession) At RemotingSSLSupport.java:[line 146]
REC | Exception is caught when Exception is not thrown in org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller)
| Bug type REC_CATCH_EXCEPTION (click for details) In class org.jboss.remoting.transport.http.HTTPClientInvoker In method org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HttpURLConnection, Object, Map, Marshaller, UnMarshaller) At HTTPClientInvoker.java:[line 412]
SA | Double assignment of remoteStrategyName in new org.jboss.remoting.samples.chat.client.Chat(String[])
| Bug type SA_LOCAL_DOUBLE_ASSIGNMENT (click for details) In class org.jboss.remoting.samples.chat.client.Chat In method new org.jboss.remoting.samples.chat.client.Chat(String[]) Local variable named remoteStrategyName At Chat.java:[line 42]
ST | Write to static field org.jboss.remoting.network.NetworkRegistry.singleton from instance method new org.jboss.remoting.network.NetworkRegistry()
| Bug type ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD (click for details) In class org.jboss.remoting.network.NetworkRegistry In method new org.jboss.remoting.network.NetworkRegistry() Field org.jboss.remoting.network.NetworkRegistry.singleton At NetworkRegistry.java:[line 66]
ST | Write to static field org.jboss.remoting.transport.multiplex.MultiplexingManager.configuration from instance method org.jboss.remoting.transport.multiplex.MultiplexingManager.initParameters(Map)
| Bug type ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD (click for details) In class org.jboss.remoting.transport.multiplex.MultiplexingManager In method org.jboss.remoting.transport.multiplex.MultiplexingManager.initParameters(Map) Field org.jboss.remoting.transport.multiplex.MultiplexingManager.configuration At MultiplexingManager.java:[line 503]

# Details

## DMI_RANDOM_USED_ONLY_ONCE: Random object created and used only once

This code creates a java.util.Random object, uses it to generate one random number, and then discards the Random object. This produces mediocre quality random numbers and is inefficient. If possible, rewrite the code so that the Random object is created once and saved, and each time a new random number is required invoke a method on the existing Random object to obtain it.

If it is important that the generated Random numbers not be guessable, you must not create a new Random for each random number; the values are too easily guessable. You should strongly consider using a java.security.SecureRandom instead (and avoid allocating a new SecureRandom for each random number needed).

## BC_UNCONFIRMED_CAST: Unchecked/unconfirmed cast

This cast is unchecked, and not all instances of the type casted from can be cast to the type it is being cast to. Ensure that your program logic ensures that this cast will not fail.

## DM_NUMBER_CTOR: Method invokes inefficient Number constructor; use static valueOf instead

Using `new Integer(int)` is guaranteed to always result in a new object whereas `Integer.valueOf(int)` allows caching of values to be done by the compiler, class library, or JVM. Using of cached values avoids object allocation and the code will be faster.

Values between -128 and 127 are guaranteed to have corresponding cached instances and using `valueOf` is approximately 3.5 times faster than using constructor. For values outside the constant range the performance of both styles is the same.

Unless the class must be compatible with JVMs predating Java 1.5, use either autoboxing or the `valueOf()` method when creating instances of `Long`, `Integer`, `Short`, `Character`, and `Byte`.

## DLS_DEAD_LOCAL_STORE: Dead store to local variable

This instruction assigns a value to a local variable, but the value is not read or used in any subsequent instruction. Often, this indicates an error, because the value computed is never used.

Note that Sun's javac compiler often generates dead stores for final local variables. Because FindBugs is a bytecode-based tool, there is no easy way to eliminate these false positives.

## DM_GC: Explicit garbage collection; extremely dubious except in benchmarking code

Code explicitly invokes garbage collection. Except for specific use in benchmarking, this is very dubious.

In the past, situations where people have explicitly invoked the garbage collector in routines such as close or finalize methods has led to huge performance black holes. Garbage collection can be expensive. Any situation that forces hundreds or thousands of garbage collections will bring the machine to a crawl.

## DM_BOOLEAN_CTOR: Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead

Creating new instances of `java.lang.Boolean` wastes memory, since `Boolean` objects are immutable and there are only two useful values of this type. Use the `Boolean.valueOf()` method (or Java 1.5 autoboxing) to create `Boolean` objects instead.

## DM_STRING_CTOR: Method invokes inefficient new String(String) constructor

Using the `java.lang.String(String)` constructor wastes memory because the object so constructed will be functionally indistinguishable from the `String` passed as a parameter. Just use the argument `String` directly.

## DM_EXIT: Method invokes System.exit(...)

Invoking System.exit shuts down the entire Java virtual machine. This should only been done when it is appropriate. Such calls make it hard or impossible for your code to be invoked by other code. Consider throwing a RuntimeException instead.

## DMI_USELESS_SUBSTRING: Invocation of substring(0), which returns the original value

This code invokes substring(0) on a String, which returns the original value.

## EI_EXPOSE_REP: May expose internal representation by returning reference to mutable object

Returning a reference to a mutable object value stored in one of the object's fields exposes the internal representation of the object. If instances are accessed by untrusted code, and unchecked changes to the mutable object would compromise security or other important properties, you will need to do something different. Returning a new copy of the object is better approach in many situations.

## EI_EXPOSE_REP2: May expose internal representation by incorporating reference to mutable object

This code stores a reference to an externally mutable object into the internal representation of the object. If instances are accessed by untrusted code, and unchecked changes to the mutable object would compromise security or other important properties, you will need to do something different. Storing a copy of the object is better approach in many situations.

## EQ_UNUSUAL: Unusual equals method

This class doesn't do any of the patterns we recognize for checking that the type of the argument is compatible with the type of the `this` object. There might not be anything wrong with this code, but it is worth reviewing.

## ES_COMPARING_STRINGS_WITH_EQ: Comparison of String objects using == or !=

This code compares `java.lang.String` objects for reference equality using the == or != operators. Unless both strings are either constants in a source file, or have been interned using the `String.intern()` method, the same string value may be represented by two different String objects. Consider using the `equals(Object)` method instead.

## HE_EQUALS_USE_HASHCODE: Class defines equals() and uses Object.hashCode()

This class overrides `equals(Object)`, but does not override `hashCode()`, and inherits the implementation of `hashCode()` from `java.lang.Object` (which returns the identity hash code, an arbitrary value assigned to the object by the VM). Therefore, the class is very likely to violate the invariant that equal objects must have equal hashcodes.

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, the recommended `hashCode` implementation to use is:

    public int hashCode() {
      assert false : "hashCode not designed";
      return 42; // any arbitrary constant will do
      }

## IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD: Ambiguous invocation of either an inherited or outer method

An inner class is invoking a method that could be resolved to either a inherited method or a method defined in an outer class. By the Java semantics, it will be resolved to invoke the inherited method, but this may not be want you intend. If you really intend to invoke the inherited method, invoke it by invoking the method on super (e.g., invoke super.foo(17)), and thus it will be clear to other readers of your code and to FindBugs that you want to invoke the inherited method, not the method in the outer class.

## ICAST_IDIV_CAST_TO_DOUBLE: integral division result cast to double or float

This code casts the result of an integral division (e.g., int or long division) operation to double or float. Doing division on integers truncates the result to the integer value closest to zero. The fact that the result was cast to double suggests that this precision should have been retained. What was probably meant was to cast one or both of the operands to double before performing the division. Here is an example:

>     int x = 2;
>     int y = 5;
>     // Wrong: yields result 0.0
>     double value1 =  x / y;

>     // Right: yields result 0.4
>     double value2 =  x / (double) y;

## IS2_INCONSISTENT_SYNC: Inconsistent synchronization

The fields of this class appear to be accessed inconsistently with respect to synchronization. This bug report indicates that the bug pattern detector judged that

- The class contains a mix of locked and unlocked accesses,
- At least one locked access was performed by one of the class's own methods, and
- The number of unsynchronized field accesses (reads and writes) was no more than one third of all accesses, with writes being weighed twice as high as reads

A typical bug matching this bug pattern is forgetting to synchronize one of the methods in a class that is intended to be thread-safe.

You can select the nodes labeled "Unsynchronized access" to show the code locations where the detector believed that a field was accessed without synchronization.

Note that there are various sources of inaccuracy in this detector; for example, the detector cannot statically detect all situations in which a lock is held. Also, even when the detector is accurate in distinguishing locked vs. unlocked accesses, the code in question may still be correct.

## MF_CLASS_MASKS_FIELD: Class defines field that masks a superclass field

This class defines a field with the same name as a visible instance field in a superclass. This is confusing, and may indicate an error if methods update or access one of the fields when they wanted the other.

## ML_SYNC_ON_UPDATED_FIELD: Method synchronizes on an updated field

This method synchronizes on an object referenced from a mutable field. This is unlikely to have useful semantics, since different threads may be synchronizing on different objects.

## MS_SHOULD_BE_FINAL: Field isn't final but should be

A mutable static field could be changed by malicious code or by accident from another package. The field could be made final to avoid this vulnerability.

## MS_PKGPROTECT: Field should be package protected

A mutable static field could be changed by malicious code or by accident. The field could be made package protected to avoid this vulnerability.

## NM_CLASS_NOT_EXCEPTION: Class is not derived from an Exception, even though it is named as such

This class is not derived from another exception, but ends with 'Exception'. This will be confusing to users of this class.

## NN_NAKED_NOTIFY: Naked notify

A call to `notify()` or `notifyAll()` was made without any (apparent) accompanying modification to mutable object state. In general, calling a notify method on a monitor is done because some condition another thread is waiting for has become true. However, for the condition to be meaningful, it must involve a heap object that is visible to both threads.

This bug does not necessarily indicate an error, since the change to mutable object state may have taken place in a method which then called the method containing the notification.

## NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT: equals() method does not check for null argument

This implementation of equals(Object) violates the contract defined by java.lang.Object.equals() because it does not check for null being passed as the argument. All equals() methods should return false if passed a null value.

## NP_LOAD_OF_KNOWN_NULL_VALUE: Load of known null value

The variable referenced at this point is known to be null due to an earlier check against null. Although this is valid, it might be a mistake (perhaps you intended to refer to a different variable, or perhaps the earlier check to see if the variable is null should have been a check to see if it was nonnull).

## NP_GUARANTEED_DEREF: Null value is guaranteed to be dereferenced

There is a statement or branch that if executed guarantees that a value is null at this point, and that value that is guaranteed to be dereferenced (except on forward paths involving runtime exceptions).

## NP_NULL_ON_SOME_PATH: Possible null pointer dereference

There is a branch of statement that, if executed, guarantees that a null value will be dereferenced, which would generate a `NullPointerException` when the code is executed. Of course, the problem might be that the branch or statement is infeasible and that the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs.

## NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE: Possible null pointer dereference due to return value of called method

The return value from a method is dereferenced without a null check, and the return value of that method is one that should generally be checked for null. This may lead to a `NullPointerException` when the code is executed.

## NP_NULL_ON_SOME_PATH_EXCEPTION: Possible null pointer dereference in method on exception path

A reference value which is null on some exception control path is dereferenced here. This may lead to a `NullPointerException` when the code is executed. Note that because FindBugs currently does not prune infeasible exception paths, this may be a false warning.

Also note that FindBugs considers the default case of a switch statement to be an exception path, since the default case is often infeasible.

## OBL_UNSATISFIED_OBLIGATION: Method may fail to clean up stream or resource

This method may fail to clean up (close, dispose of) a stream, database object, or other resource requiring an explicit cleanup operation.

In general, if a method opens a stream or other resource, the method should use a try/finally block to ensure that the stream or resource is cleaned up before the method returns.

This bug pattern is essentially the same as the OS_OPEN_STREAM and ODR_OPEN_DATABASE_RESOURCE bug patterns, but is based on a different (and hopefully better) static analysis technique. We are interested is getting feedback about the usefulness of this bug pattern. To send feedback, either:

- send email to findbugs@cs.umd.edu
- file a bug report: http://findbugs.sourceforge.net/reportingBugs.html

In particular, the false-positive suppression heuristics for this bug pattern have not been extensively tuned, so reports about false positives are helpful to us.

See Weimer and Necula, Finding and Preventing Run-Time Error Handling Mistakes, for a description of the analysis technique.

## OS_OPEN_STREAM: Method may fail to close stream

The method creates an IO stream object, does not assign it to any fields, pass it to other methods that might close it, or return it, and does not appear to close the stream on all paths out of the method. This may result in a file descriptor leak. It is generally a good idea to use a `finally` block to ensure that streams are closed.

## RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE: Nullcheck of value previously dereferenced

A value is checked here to see whether it is null, but this value can't be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.

## REC_CATCH_EXCEPTION: Exception is caught when Exception is not thrown

This method uses a try-catch block that catches Exception objects, but Exception is not thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well, masking potential bugs.

## RpC_REPEATED_CONDITIONAL_TEST: Repeated conditional tests

The code contains a conditional test is performed twice, one right after the other (e.g., `x == 0 || x == 0`). Perhaps the second occurrence is intended to be something else (e.g., `x == 0 || y == 0`).

## SR_NOT_CHECKED: Method ignores results of InputStream.skip()

This method ignores the return value of `java.io.InputStream.skip()` which can skip multiple bytes. If the return value is not checked, the caller will not be able to correctly handle the case where fewer bytes were skipped than the caller requested. This is a particularly insidious kind of bug, because in many programs, skips from input streams usually do skip the full amount of data requested, causing the program to fail only sporadically. With Buffered streams, however, skip() will only skip data in the buffer, and will routinely fail to skip the requested number of bytes.

## RV_RETURN_VALUE_IGNORED_BAD_PRACTICE: Method ignores exceptional return value

This method returns a value that is not checked. The return value should be checked since it can indicate an unusual or unexpected function execution. For example, the `File.delete()` method returns false if the file could not be successfully deleted (rather than throwing an Exception). If you don't check the result, you won't notice if the method invocation signals unexpected behavior by returning an atypical return value.

## SA_LOCAL_DOUBLE_ASSIGNMENT: Double assignment of local variable

This method contains a double assignment of a local variable; e.g.

      public void foo() {
        int x,y;
        x = x = 17;
      }

Assigning the same value to a variable twice is useless, and may indicate a logic error or typo.

## SBSC_USE_STRINGBUFFER_CONCATENATION: Method concatenates strings using + in a loop

The method seems to be building a String using concatenation in a loop. In each iteration, the String is converted to a StringBuffer/StringBuilder, appended to, and converted back to a String. This can lead to a cost quadratic in the number of iterations, as the growing string is recopied in each iteration.

Better performance can be obtained by using a StringBuffer (or StringBuilder in Java 1.5) explicitly.

For example:

      // This is bad
      String s = "";
      for (int i = 0; i < field.length; ++i) {
        s = s + field[i];
      }

      // This is better
      StringBuffer buf = new StringBuffer();
      for (int i = 0; i < field.length; ++i) {
        buf.append(field[i]);
      }
      String s = buf.toString();

## SC_START_IN_CTOR: Constructor invokes Thread.start()

The constructor starts a thread. This is likely to be wrong if the class is ever extended/subclassed, since the thread will be started before the subclass constructor is started.

## SE_BAD_FIELD: Non-transient non-serializable instance field in serializable class

This Serializable class defines a non-primitive instance field which is neither transient, Serializable, or `java.lang.Object`, and does not appear to implement the `Externalizable` interface or the `readObject()` and `writeObject()` methods. Objects of this class will not be deserialized correctly if a non-Serializable object is stored in this field.

## SE_INNER_CLASS: Serializable inner class

This Serializable class is an inner class. Any attempt to serialize it will also serialize the associated outer instance. The outer instance is serializable, so this won't fail, but it might serialize a lot more data than intended. If possible, making the inner class a static inner class (also known as a nested class) should solve the problem.

## SIC_INNER_SHOULD_BE_STATIC: Should be a static inner class

This class is an inner class, but does not use its embedded reference to the object which created it. This reference makes the instances of the class larger, and may keep the reference to the creator object alive longer than necessary. If possible, the class should be made static.

## ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD: Write to static field from instance method

This instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice.

## SWL_SLEEP_WITH_LOCK_HELD: Method calls Thread.sleep() with a lock held

This method calls Thread.sleep() with a lock held. This may result in very poor performance and scalability, or a deadlock, since other threads may be waiting to acquire the lock. It is a much better idea to call wait() on the lock, which releases the lock and allows other threads to run.

## URF_UNREAD_FIELD: Unread field

This field is never read. Consider removing it from the class.

## DMI_INVOKING_TOSTRING_ON_ARRAY: Invocation of toString on an array

The code invokes toString on an array, which will generate a fairly useless result such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12.

## UW_UNCOND_WAIT: Unconditional wait

This method contains a call to `java.lang.Object.wait()` which is not guarded by conditional control flow. The code should verify that condition it intends to wait for is not already satisfied before calling wait; any previous notifications will be ignored.

## WA_NOT_IN_LOOP: Wait not in loop

This method contains a call to `java.lang.Object.wait()` which is not in a loop. If the monitor is used for multiple conditions, the condition the caller intended to wait for might not be the one that actually occurred.

## WMI_WRONG_MAP_ITERATOR: Inefficient use of keySet iterator instead of entrySet iterator

This method accesses the value of a Map entry, using a key that was retrieved from a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the Map.get(key) lookup.