/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/MainActivity.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools$Helper.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools$Other.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/BuildConfig.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Conversation.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Message.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Type.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/User.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/MainViewModel.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationViewHolder.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationAdapter.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationClickListener.class
/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/MainActivity$1.class
/Users/developer/project/sample/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/release/R.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/7e4b867e2d0f6dea75bcdd697d1f69dd/material-1.3.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/0a4b14c02b458b8b0611f5c4ae8a5d44/constraintlayout-2.0.4-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/683343af73498b739e2b04bcaeaf63e3/appcompat-1.2.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/b68936747c61896fa532975bf0d39b4d/jetified-viewpager2-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/199a4d7295696d0246b6ff0076ca629c/recyclerview-1.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/30201beec5d4ef8e01196b5ac791b4b5/fragment-1.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/bdaa889975ef518124dc67650cd1f7b8/jetified-appcompat-resources-1.2.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/b7e347f4735e1b77fa91c9511430ac1a/drawerlayout-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/7864b887305f0fe13b89e7ac410b4c2e/coordinatorlayout-1.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/d2aa73a80f43aa6f3aec0fa0f0c612e6/viewpager-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/bce97611a2017f226f4f88307637344a/customview-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/572ddfdda97d22fe148eb2e08d685fbf/dynamicanimation-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/8ecbf1470d072d91138ce0211ab550fd/transition-1.2.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/cc24e64fbaa350d257282479bc7c2c56/vectordrawable-animated-1.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/9dd0b1ec597ae2718d0ae7bf4aac2744/vectordrawable-1.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/c1bfec2c4ec89ddf6f21624150df346a/legacy-support-core-utils-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/42b19e6e8e328e6b377b3b45a32caa8f/loader-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/98b2d5ba374afb2043774f9d2d814cc7/jetified-activity-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/d88d1516fa00724322e40364dd43f4dc/core-1.3.1-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/90ca9d2afbad29b01dc244f61e22d326/cursoradapter-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/1d70eb41c7fe34d5e9d3d0259c721615/versionedparcelable-1.1.0-api.jar
/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/cabcd1a0a7b5c54b0ec6d49828ba0ecc/cardview-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/94486a50fb6342af595f510821233f45/lifecycle-runtime-2.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/ebe64895a6d1cc9dd3c7358395ab0491/lifecycle-viewmodel-2.1.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/07e59e7d68a214448e1fde097cea512f/jetified-savedstate-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/22e18bccaf6281e78aed52ece611a147/lifecycle-livedata-2.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/c1f8835cafadf8177e87e2018688fc6c/lifecycle-livedata-core-2.0.0-api.jar
/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.1.0/c67e7807d9cd6c329b9d0218b2ec4e505dd340b7/lifecycle-common-2.1.0.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/1fe8b1e4c7213dafd2365c05c73e3350/core-runtime-2.0.0-api.jar
/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/439df125e5eda74c5b0f8a313a540c59/interpolator-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/c68e7aa34aa4c98de5e3ab3926503de4/documentfile-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/ada8a46d2b7afd778ad3731a9d128b0b/localbroadcastmanager-1.0.0-api.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/0b76137a87d9f98bf509cec47c3129f4/print-1.0.0-api.jar
/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8/annotation-1.1.0.jar
/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/2.0.4/1f001d7db280a89a6c26b26a66eb064bb6d5efeb/constraintlayout-solver-2.0.4.jar
/Users/developer/.gradle/caches/transforms-2/files-2.1/ed4f5e49e34651c5c1122e260888ce62/jetified-annotation-experimental-1.0.0-api.jar
/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Message.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Type.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/model/User.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Conversation.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/view/MainViewModel.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationClickListener.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationAdapter.java
/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationViewHolder.java
/Users/developer/project/sample/app/build/generated/source/buildConfig/release/com/github/sample/BuildConfig.java
Possible null pointer dereference
Possible null pointer dereference of MainActivity.conversationAdapter in com.github.sample.MainActivity.onCreate(Bundle)
At MainActivity.java:[lines 13-39]
In class com.github.sample.MainActivity
In method com.github.sample.MainActivity.onCreate(Bundle)
In MainActivity.java
Value contained in com.github.sample.MainActivity.conversationAdapter
Dereferenced at MainActivity.java:[line 29]
Known null at MainActivity.java:[line 29]
Possible null pointer dereference
Possible null pointer dereference of Tools$Helper.string in com.github.sample.tools.Tools$Helper.setText(TextView)
At Tools.java:[lines 23-33]
In class com.github.sample.tools.Tools$Helper
In method com.github.sample.tools.Tools$Helper.setText(TextView)
In Tools.java
Value contained in com.github.sample.tools.Tools$Helper.string
Dereferenced at Tools.java:[line 31]
Known null at Tools.java:[line 31]
Read of unwritten field
Read of unwritten field title in com.github.sample.tools.Tools$Helper.setText(TextView)
At Tools.java:[lines 23-33]
In class com.github.sample.tools.Tools$Helper
In method com.github.sample.tools.Tools$Helper.setText(TextView)
In Tools.java
Field com.github.sample.tools.Tools$Helper.title
At Tools.java:[line 32]
Should be a static inner class
Should com.github.sample.tools.Tools$Helper be a _static_ inner class?
At Tools.java:[lines 23-33]
In class com.github.sample.tools.Tools$Helper
At Tools.java:[lines 23-33]
Unwritten field
Unwritten field: com.github.sample.tools.Tools$Helper.title
At Tools.java:[lines 23-33]
In class com.github.sample.tools.Tools$Helper
In Tools.java
Field com.github.sample.tools.Tools$Helper.title
At Tools.java:[line 32]
Should be a static inner class
Should com.github.sample.tools.Tools$Other be a _static_ inner class?
At Tools.java:[lines 15-20]
In class com.github.sample.tools.Tools$Other
At Tools.java:[lines 15-20]
Bad comparison of nonnegative value with negative constant or zero
Bad comparison of nonnegative value with -1 in com.github.sample.view.ConversationAdapter.setConversations(ArrayList)
At ConversationAdapter.java:[lines 9-37]
In class com.github.sample.view.ConversationAdapter
In method com.github.sample.view.ConversationAdapter.setConversations(ArrayList)
Value -1
Return value of java.util.ArrayList.size() of type int
At ConversationAdapter.java:[line 32]
Correctness
Performance
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 SpotBugs.
]]>
Unwritten field
This field is never written. All reads of it will return the default
value. Check for errors (should it have been initialized?), or remove it if it is useless.
]]>
Read of unwritten field
The program is dereferencing a field that does not seem to ever have a non-null value written to it.
Unless the field is initialized via some mechanism not seen by the analysis,
dereferencing this value will generate a null pointer exception.
]]>
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.
]]>
Bad comparison of nonnegative value with negative constant or zero
This code compares a value that is guaranteed to be non-negative with a negative constant or zero.
]]>
Null pointer dereference
Unwritten field
Inner class could be made static
Suspicious integer expression
android.app.Activity
android.util.Log
android.view.View
android.widget.TextView