danger-spotbugs 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/publish.yml +35 -0
- data/.github/workflows/test.yml +24 -0
- data/.gitignore +4 -0
- data/.rubocop.yml +4835 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +165 -0
- data/Guardfile +19 -0
- data/LICENSE +22 -0
- data/README.md +24 -0
- data/Rakefile +23 -0
- data/danger-spotbugs.gemspec +53 -0
- data/lib/danger_plugin.rb +3 -0
- data/lib/danger_spotbugs.rb +3 -0
- data/lib/spotbugs/entity/bug_instance.rb +51 -0
- data/lib/spotbugs/gem_version.rb +5 -0
- data/lib/spotbugs/plugin.rb +211 -0
- data/spec/entity/bug_instance_spec.rb +153 -0
- data/spec/fixtures/spotbugs_report.xml +346 -0
- data/spec/spec_helper.rb +67 -0
- data/spec/spotbugs_spec.rb +174 -0
- metadata +249 -0
@@ -0,0 +1,153 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
module Spotbugs
|
6
|
+
require 'oga'
|
7
|
+
|
8
|
+
describe BugInstance do
|
9
|
+
it 'should initialize with first bug instance' do
|
10
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
11
|
+
bug_instance = BugInstance.new(
|
12
|
+
'/Users/developer/project/sample/',
|
13
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
14
|
+
xml.xpath('//BugInstance')[0]
|
15
|
+
)
|
16
|
+
|
17
|
+
expect(bug_instance.rank).to eq(6)
|
18
|
+
expect(bug_instance.line).to eq(29)
|
19
|
+
expect(bug_instance.type).to eq(:warn)
|
20
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java')
|
21
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/MainActivity.java')
|
22
|
+
expect(bug_instance.description).to eq('Possible null pointer dereference of MainActivity.conversationAdapter in com.github.sample.MainActivity.onCreate(Bundle)')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should initialize with first bug instance and prefix without trailing file separator' do
|
26
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
27
|
+
bug_instance = BugInstance.new(
|
28
|
+
'/Users/developer/project/sample',
|
29
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
30
|
+
xml.xpath('//BugInstance')[0]
|
31
|
+
)
|
32
|
+
|
33
|
+
expect(bug_instance.rank).to eq(6)
|
34
|
+
expect(bug_instance.line).to eq(29)
|
35
|
+
expect(bug_instance.type).to eq(:warn)
|
36
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java')
|
37
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/MainActivity.java')
|
38
|
+
expect(bug_instance.description).to eq('Possible null pointer dereference of MainActivity.conversationAdapter in com.github.sample.MainActivity.onCreate(Bundle)')
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should initialize with first bug instance and unknown prefix' do
|
42
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
43
|
+
bug_instance = BugInstance.new(
|
44
|
+
'/Users/unknown',
|
45
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
46
|
+
xml.xpath('//BugInstance')[0]
|
47
|
+
)
|
48
|
+
|
49
|
+
expect(bug_instance.rank).to eq(6)
|
50
|
+
expect(bug_instance.line).to eq(29)
|
51
|
+
expect(bug_instance.type).to eq(:warn)
|
52
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java')
|
53
|
+
expect(bug_instance.relative_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java')
|
54
|
+
expect(bug_instance.description).to eq('Possible null pointer dereference of MainActivity.conversationAdapter in com.github.sample.MainActivity.onCreate(Bundle)')
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should initialize with second bug instance' do
|
58
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
59
|
+
bug_instance = BugInstance.new(
|
60
|
+
'/Users/developer/project/sample/',
|
61
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
62
|
+
xml.xpath('//BugInstance')[1]
|
63
|
+
)
|
64
|
+
|
65
|
+
expect(bug_instance.rank).to eq(6)
|
66
|
+
expect(bug_instance.line).to eq(31)
|
67
|
+
expect(bug_instance.type).to eq(:warn)
|
68
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java')
|
69
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/tools/Tools.java')
|
70
|
+
expect(bug_instance.description).to eq('Possible null pointer dereference of Tools$Helper.string in com.github.sample.tools.Tools$Helper.setText(TextView)')
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should initialize with third bug instance' do
|
74
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
75
|
+
bug_instance = BugInstance.new(
|
76
|
+
'/Users/developer/project/sample/',
|
77
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
78
|
+
xml.xpath('//BugInstance')[2]
|
79
|
+
)
|
80
|
+
|
81
|
+
expect(bug_instance.rank).to eq(8)
|
82
|
+
expect(bug_instance.line).to eq(32)
|
83
|
+
expect(bug_instance.type).to eq(:warn)
|
84
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java')
|
85
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/tools/Tools.java')
|
86
|
+
expect(bug_instance.description).to eq('Read of unwritten field title in com.github.sample.tools.Tools$Helper.setText(TextView)')
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should initialize with fourth bug instance' do
|
90
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
91
|
+
bug_instance = BugInstance.new(
|
92
|
+
'/Users/developer/project/sample/',
|
93
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
94
|
+
xml.xpath('//BugInstance')[3]
|
95
|
+
)
|
96
|
+
|
97
|
+
expect(bug_instance.rank).to eq(18)
|
98
|
+
expect(bug_instance.line).to eq(23)
|
99
|
+
expect(bug_instance.type).to eq(:warn)
|
100
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java')
|
101
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/tools/Tools.java')
|
102
|
+
expect(bug_instance.description).to eq('Should com.github.sample.tools.Tools$Helper be a _static_ inner class?')
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'should initialize with fifth bug instance' do
|
106
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
107
|
+
bug_instance = BugInstance.new(
|
108
|
+
'/Users/developer/project/sample/',
|
109
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
110
|
+
xml.xpath('//BugInstance')[4]
|
111
|
+
)
|
112
|
+
|
113
|
+
expect(bug_instance.rank).to eq(12)
|
114
|
+
expect(bug_instance.line).to eq(32)
|
115
|
+
expect(bug_instance.type).to eq(:warn)
|
116
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java')
|
117
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/tools/Tools.java')
|
118
|
+
expect(bug_instance.description).to eq('Unwritten field: com.github.sample.tools.Tools$Helper.title')
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should initialize with sixth bug instance' do
|
122
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
123
|
+
bug_instance = BugInstance.new(
|
124
|
+
'/Users/developer/project/sample/',
|
125
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
126
|
+
xml.xpath('//BugInstance')[5]
|
127
|
+
)
|
128
|
+
|
129
|
+
expect(bug_instance.rank).to eq(18)
|
130
|
+
expect(bug_instance.line).to eq(15)
|
131
|
+
expect(bug_instance.type).to eq(:warn)
|
132
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java')
|
133
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/tools/Tools.java')
|
134
|
+
expect(bug_instance.description).to eq('Should com.github.sample.tools.Tools$Other be a _static_ inner class?')
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'should initialize with seventh bug instance' do
|
138
|
+
xml = Oga.parse_xml(File.open('spec/fixtures/spotbugs_report.xml'))
|
139
|
+
bug_instance = BugInstance.new(
|
140
|
+
'/Users/developer/project/sample/',
|
141
|
+
xml.xpath('//BugCollection//SrcDir').map(&:text),
|
142
|
+
xml.xpath('//BugInstance')[6]
|
143
|
+
)
|
144
|
+
|
145
|
+
expect(bug_instance.rank).to eq(5)
|
146
|
+
expect(bug_instance.line).to eq(32)
|
147
|
+
expect(bug_instance.type).to eq(:warn)
|
148
|
+
expect(bug_instance.absolute_path).to eq('/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationAdapter.java')
|
149
|
+
expect(bug_instance.relative_path).to eq('app/src/main/java/com/github/sample/view/ConversationAdapter.java')
|
150
|
+
expect(bug_instance.description).to eq('Bad comparison of nonnegative value with -1 in com.github.sample.view.ConversationAdapter.setConversations(ArrayList)')
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
@@ -0,0 +1,346 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<BugCollection version="4.1.1" sequence="0" timestamp="1616453271149" analysisTimestamp="1616453271213" release="unspecified">
|
4
|
+
<Project projectName="app (spotbugsRelease)">
|
5
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/MainActivity.class</Jar>
|
6
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools$Helper.class</Jar>
|
7
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools$Other.class</Jar>
|
8
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/tools/Tools.class</Jar>
|
9
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/BuildConfig.class</Jar>
|
10
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Conversation.class</Jar>
|
11
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Message.class</Jar>
|
12
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/Type.class</Jar>
|
13
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/model/User.class</Jar>
|
14
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/MainViewModel.class</Jar>
|
15
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationViewHolder.class</Jar>
|
16
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationAdapter.class</Jar>
|
17
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/view/ConversationClickListener.class</Jar>
|
18
|
+
<Jar>/Users/developer/project/sample/app/build/intermediates/javac/release/classes/com/github/sample/MainActivity$1.class</Jar>
|
19
|
+
<AuxClasspathEntry>/Users/developer/project/sample/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/release/R.jar</AuxClasspathEntry>
|
20
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/7e4b867e2d0f6dea75bcdd697d1f69dd/material-1.3.0-api.jar</AuxClasspathEntry>
|
21
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/0a4b14c02b458b8b0611f5c4ae8a5d44/constraintlayout-2.0.4-api.jar</AuxClasspathEntry>
|
22
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/683343af73498b739e2b04bcaeaf63e3/appcompat-1.2.0-api.jar</AuxClasspathEntry>
|
23
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/b68936747c61896fa532975bf0d39b4d/jetified-viewpager2-1.0.0-api.jar</AuxClasspathEntry>
|
24
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/199a4d7295696d0246b6ff0076ca629c/recyclerview-1.1.0-api.jar</AuxClasspathEntry>
|
25
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/30201beec5d4ef8e01196b5ac791b4b5/fragment-1.1.0-api.jar</AuxClasspathEntry>
|
26
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/bdaa889975ef518124dc67650cd1f7b8/jetified-appcompat-resources-1.2.0-api.jar</AuxClasspathEntry>
|
27
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/b7e347f4735e1b77fa91c9511430ac1a/drawerlayout-1.0.0-api.jar</AuxClasspathEntry>
|
28
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/7864b887305f0fe13b89e7ac410b4c2e/coordinatorlayout-1.1.0-api.jar</AuxClasspathEntry>
|
29
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/d2aa73a80f43aa6f3aec0fa0f0c612e6/viewpager-1.0.0-api.jar</AuxClasspathEntry>
|
30
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/bce97611a2017f226f4f88307637344a/customview-1.0.0-api.jar</AuxClasspathEntry>
|
31
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/572ddfdda97d22fe148eb2e08d685fbf/dynamicanimation-1.0.0-api.jar</AuxClasspathEntry>
|
32
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/8ecbf1470d072d91138ce0211ab550fd/transition-1.2.0-api.jar</AuxClasspathEntry>
|
33
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/cc24e64fbaa350d257282479bc7c2c56/vectordrawable-animated-1.1.0-api.jar</AuxClasspathEntry>
|
34
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/9dd0b1ec597ae2718d0ae7bf4aac2744/vectordrawable-1.1.0-api.jar</AuxClasspathEntry>
|
35
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/c1bfec2c4ec89ddf6f21624150df346a/legacy-support-core-utils-1.0.0-api.jar</AuxClasspathEntry>
|
36
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/42b19e6e8e328e6b377b3b45a32caa8f/loader-1.0.0-api.jar</AuxClasspathEntry>
|
37
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/98b2d5ba374afb2043774f9d2d814cc7/jetified-activity-1.0.0-api.jar</AuxClasspathEntry>
|
38
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/d88d1516fa00724322e40364dd43f4dc/core-1.3.1-api.jar</AuxClasspathEntry>
|
39
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/90ca9d2afbad29b01dc244f61e22d326/cursoradapter-1.0.0-api.jar</AuxClasspathEntry>
|
40
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/1d70eb41c7fe34d5e9d3d0259c721615/versionedparcelable-1.1.0-api.jar</AuxClasspathEntry>
|
41
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar</AuxClasspathEntry>
|
42
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/cabcd1a0a7b5c54b0ec6d49828ba0ecc/cardview-1.0.0-api.jar</AuxClasspathEntry>
|
43
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/94486a50fb6342af595f510821233f45/lifecycle-runtime-2.1.0-api.jar</AuxClasspathEntry>
|
44
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/ebe64895a6d1cc9dd3c7358395ab0491/lifecycle-viewmodel-2.1.0-api.jar</AuxClasspathEntry>
|
45
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/07e59e7d68a214448e1fde097cea512f/jetified-savedstate-1.0.0-api.jar</AuxClasspathEntry>
|
46
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/22e18bccaf6281e78aed52ece611a147/lifecycle-livedata-2.0.0-api.jar</AuxClasspathEntry>
|
47
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/c1f8835cafadf8177e87e2018688fc6c/lifecycle-livedata-core-2.0.0-api.jar</AuxClasspathEntry>
|
48
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.1.0/c67e7807d9cd6c329b9d0218b2ec4e505dd340b7/lifecycle-common-2.1.0.jar</AuxClasspathEntry>
|
49
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/1fe8b1e4c7213dafd2365c05c73e3350/core-runtime-2.0.0-api.jar</AuxClasspathEntry>
|
50
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar</AuxClasspathEntry>
|
51
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/439df125e5eda74c5b0f8a313a540c59/interpolator-1.0.0-api.jar</AuxClasspathEntry>
|
52
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/c68e7aa34aa4c98de5e3ab3926503de4/documentfile-1.0.0-api.jar</AuxClasspathEntry>
|
53
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/ada8a46d2b7afd778ad3731a9d128b0b/localbroadcastmanager-1.0.0-api.jar</AuxClasspathEntry>
|
54
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/0b76137a87d9f98bf509cec47c3129f4/print-1.0.0-api.jar</AuxClasspathEntry>
|
55
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8/annotation-1.1.0.jar</AuxClasspathEntry>
|
56
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/2.0.4/1f001d7db280a89a6c26b26a66eb064bb6d5efeb/constraintlayout-solver-2.0.4.jar</AuxClasspathEntry>
|
57
|
+
<AuxClasspathEntry>/Users/developer/.gradle/caches/transforms-2/files-2.1/ed4f5e49e34651c5c1122e260888ce62/jetified-annotation-experimental-1.0.0-api.jar</AuxClasspathEntry>
|
58
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/tools/Tools.java</SrcDir>
|
59
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/MainActivity.java</SrcDir>
|
60
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Message.java</SrcDir>
|
61
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Type.java</SrcDir>
|
62
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/model/User.java</SrcDir>
|
63
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/model/Conversation.java</SrcDir>
|
64
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/view/MainViewModel.java</SrcDir>
|
65
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationClickListener.java</SrcDir>
|
66
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationAdapter.java</SrcDir>
|
67
|
+
<SrcDir>/Users/developer/project/sample/app/src/main/java/com/github/sample/view/ConversationViewHolder.java</SrcDir>
|
68
|
+
<SrcDir>/Users/developer/project/sample/app/build/generated/source/buildConfig/release/com/github/sample/BuildConfig.java</SrcDir>
|
69
|
+
</Project>
|
70
|
+
<BugInstance type="NP_NULL_ON_SOME_PATH" priority="1" rank="6" abbrev="NP" category="CORRECTNESS" instanceHash="14f2ef91c09cb234637c3b3ebc9cbce9" instanceOccurrenceNum="0" instanceOccurrenceMax="0" cweid="476">
|
71
|
+
<ShortMessage>Possible null pointer dereference</ShortMessage>
|
72
|
+
<LongMessage>Possible null pointer dereference of MainActivity.conversationAdapter in com.github.sample.MainActivity.onCreate(Bundle)</LongMessage>
|
73
|
+
<Class classname="com.github.sample.MainActivity" primary="true">
|
74
|
+
<SourceLine classname="com.github.sample.MainActivity" start="13" end="39" sourcefile="MainActivity.java" sourcepath="com/github/sample/MainActivity.java">
|
75
|
+
<Message>At MainActivity.java:[lines 13-39]</Message>
|
76
|
+
</SourceLine>
|
77
|
+
<Message>In class com.github.sample.MainActivity</Message>
|
78
|
+
</Class>
|
79
|
+
<Method classname="com.github.sample.MainActivity" name="onCreate" signature="(Landroid/os/Bundle;)V" isStatic="false" primary="true">
|
80
|
+
<SourceLine classname="com.github.sample.MainActivity" start="22" end="39" startBytecode="0" endBytecode="193" sourcefile="MainActivity.java" sourcepath="com/github/sample/MainActivity.java"/>
|
81
|
+
<Message>In method com.github.sample.MainActivity.onCreate(Bundle)</Message>
|
82
|
+
</Method>
|
83
|
+
<Field classname="com.github.sample.MainActivity" name="conversationAdapter" signature="Lcom/github/sample/view/ConversationAdapter;" isStatic="false" primary="true" role="FIELD_CONTAINS_VALUE">
|
84
|
+
<SourceLine classname="com.github.sample.MainActivity" sourcefile="MainActivity.java" sourcepath="com/github/sample/MainActivity.java">
|
85
|
+
<Message>In MainActivity.java</Message>
|
86
|
+
</SourceLine>
|
87
|
+
<Message>Value contained in com.github.sample.MainActivity.conversationAdapter</Message>
|
88
|
+
</Field>
|
89
|
+
<SourceLine classname="com.github.sample.MainActivity" primary="true" start="29" end="29" startBytecode="42" endBytecode="42" sourcefile="MainActivity.java" sourcepath="com/github/sample/MainActivity.java" role="SOURCE_LINE_DEREF">
|
90
|
+
<Message>Dereferenced at MainActivity.java:[line 29]</Message>
|
91
|
+
</SourceLine>
|
92
|
+
<SourceLine classname="com.github.sample.MainActivity" start="29" end="29" startBytecode="34" endBytecode="34" sourcefile="MainActivity.java" sourcepath="com/github/sample/MainActivity.java" role="SOURCE_LINE_KNOWN_NULL">
|
93
|
+
<Message>Known null at MainActivity.java:[line 29]</Message>
|
94
|
+
</SourceLine>
|
95
|
+
</BugInstance>
|
96
|
+
<BugInstance type="NP_NULL_ON_SOME_PATH" priority="1" rank="6" abbrev="NP" category="CORRECTNESS" instanceHash="36d97a1af3badcca6f42173c474917a6" instanceOccurrenceNum="0" instanceOccurrenceMax="0" cweid="476">
|
97
|
+
<ShortMessage>Possible null pointer dereference</ShortMessage>
|
98
|
+
<LongMessage>Possible null pointer dereference of Tools$Helper.string in com.github.sample.tools.Tools$Helper.setText(TextView)</LongMessage>
|
99
|
+
<Class classname="com.github.sample.tools.Tools$Helper" primary="true">
|
100
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="23" end="33" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
101
|
+
<Message>At Tools.java:[lines 23-33]</Message>
|
102
|
+
</SourceLine>
|
103
|
+
<Message>In class com.github.sample.tools.Tools$Helper</Message>
|
104
|
+
</Class>
|
105
|
+
<Method classname="com.github.sample.tools.Tools$Helper" name="setText" signature="(Landroid/widget/TextView;)V" isStatic="false" primary="true">
|
106
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="31" end="33" startBytecode="0" endBytecode="86" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java"/>
|
107
|
+
<Message>In method com.github.sample.tools.Tools$Helper.setText(TextView)</Message>
|
108
|
+
</Method>
|
109
|
+
<Field classname="com.github.sample.tools.Tools$Helper" name="string" signature="Ljava/lang/String;" isStatic="false" primary="true" role="FIELD_CONTAINS_VALUE">
|
110
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
111
|
+
<Message>In Tools.java</Message>
|
112
|
+
</SourceLine>
|
113
|
+
<Message>Value contained in com.github.sample.tools.Tools$Helper.string</Message>
|
114
|
+
</Field>
|
115
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" primary="true" start="31" end="31" startBytecode="7" endBytecode="7" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java" role="SOURCE_LINE_DEREF">
|
116
|
+
<Message>Dereferenced at Tools.java:[line 31]</Message>
|
117
|
+
</SourceLine>
|
118
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="31" end="31" startBytecode="5" endBytecode="5" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java" role="SOURCE_LINE_KNOWN_NULL">
|
119
|
+
<Message>Known null at Tools.java:[line 31]</Message>
|
120
|
+
</SourceLine>
|
121
|
+
</BugInstance>
|
122
|
+
<BugInstance type="NP_UNWRITTEN_FIELD" priority="2" rank="8" abbrev="NP" category="CORRECTNESS" instanceHash="1651fb886d45369f319320730550021a" instanceOccurrenceNum="0" instanceOccurrenceMax="0" cweid="476">
|
123
|
+
<ShortMessage>Read of unwritten field</ShortMessage>
|
124
|
+
<LongMessage>Read of unwritten field title in com.github.sample.tools.Tools$Helper.setText(TextView)</LongMessage>
|
125
|
+
<Class classname="com.github.sample.tools.Tools$Helper" primary="true">
|
126
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="23" end="33" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
127
|
+
<Message>At Tools.java:[lines 23-33]</Message>
|
128
|
+
</SourceLine>
|
129
|
+
<Message>In class com.github.sample.tools.Tools$Helper</Message>
|
130
|
+
</Class>
|
131
|
+
<Method classname="com.github.sample.tools.Tools$Helper" name="setText" signature="(Landroid/widget/TextView;)V" isStatic="false" primary="true">
|
132
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="31" end="33" startBytecode="0" endBytecode="86" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java"/>
|
133
|
+
<Message>In method com.github.sample.tools.Tools$Helper.setText(TextView)</Message>
|
134
|
+
</Method>
|
135
|
+
<Field classname="com.github.sample.tools.Tools$Helper" name="title" signature="Ljava/lang/String;" isStatic="false" primary="true">
|
136
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
137
|
+
<Message>In Tools.java</Message>
|
138
|
+
</SourceLine>
|
139
|
+
<Message>Field com.github.sample.tools.Tools$Helper.title</Message>
|
140
|
+
</Field>
|
141
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" primary="true" start="32" end="32" startBytecode="20" endBytecode="20" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
142
|
+
<Message>At Tools.java:[line 32]</Message>
|
143
|
+
</SourceLine>
|
144
|
+
</BugInstance>
|
145
|
+
<BugInstance type="SIC_INNER_SHOULD_BE_STATIC" priority="2" rank="18" abbrev="SIC" category="PERFORMANCE" instanceHash="fea23dbc6037efb570062f6497bc3927" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
|
146
|
+
<ShortMessage>Should be a static inner class</ShortMessage>
|
147
|
+
<LongMessage>Should com.github.sample.tools.Tools$Helper be a _static_ inner class?</LongMessage>
|
148
|
+
<Class classname="com.github.sample.tools.Tools$Helper" primary="true">
|
149
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="23" end="33" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
150
|
+
<Message>At Tools.java:[lines 23-33]</Message>
|
151
|
+
</SourceLine>
|
152
|
+
<Message>In class com.github.sample.tools.Tools$Helper</Message>
|
153
|
+
</Class>
|
154
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="23" end="33" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java" synthetic="true">
|
155
|
+
<Message>At Tools.java:[lines 23-33]</Message>
|
156
|
+
</SourceLine>
|
157
|
+
</BugInstance>
|
158
|
+
<BugInstance type="UWF_UNWRITTEN_FIELD" priority="2" rank="12" abbrev="UwF" category="CORRECTNESS" instanceHash="a84aadf6a9afc3505ee39b0abfe267c8" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
|
159
|
+
<ShortMessage>Unwritten field</ShortMessage>
|
160
|
+
<LongMessage>Unwritten field: com.github.sample.tools.Tools$Helper.title</LongMessage>
|
161
|
+
<Class classname="com.github.sample.tools.Tools$Helper" primary="true">
|
162
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" start="23" end="33" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
163
|
+
<Message>At Tools.java:[lines 23-33]</Message>
|
164
|
+
</SourceLine>
|
165
|
+
<Message>In class com.github.sample.tools.Tools$Helper</Message>
|
166
|
+
</Class>
|
167
|
+
<Field classname="com.github.sample.tools.Tools$Helper" name="title" signature="Ljava/lang/String;" isStatic="false" primary="true">
|
168
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
169
|
+
<Message>In Tools.java</Message>
|
170
|
+
</SourceLine>
|
171
|
+
<Message>Field com.github.sample.tools.Tools$Helper.title</Message>
|
172
|
+
</Field>
|
173
|
+
<SourceLine classname="com.github.sample.tools.Tools$Helper" primary="true" start="32" end="32" startBytecode="15" endBytecode="15" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
174
|
+
<Message>At Tools.java:[line 32]</Message>
|
175
|
+
</SourceLine>
|
176
|
+
</BugInstance>
|
177
|
+
<BugInstance type="SIC_INNER_SHOULD_BE_STATIC" priority="2" rank="18" abbrev="SIC" category="PERFORMANCE" instanceHash="8073e2e346bb32034a6243cc6ed22a3c" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
|
178
|
+
<ShortMessage>Should be a static inner class</ShortMessage>
|
179
|
+
<LongMessage>Should com.github.sample.tools.Tools$Other be a _static_ inner class?</LongMessage>
|
180
|
+
<Class classname="com.github.sample.tools.Tools$Other" primary="true">
|
181
|
+
<SourceLine classname="com.github.sample.tools.Tools$Other" start="15" end="20" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java">
|
182
|
+
<Message>At Tools.java:[lines 15-20]</Message>
|
183
|
+
</SourceLine>
|
184
|
+
<Message>In class com.github.sample.tools.Tools$Other</Message>
|
185
|
+
</Class>
|
186
|
+
<SourceLine classname="com.github.sample.tools.Tools$Other" start="15" end="20" sourcefile="Tools.java" sourcepath="com/github/sample/tools/Tools.java" synthetic="true">
|
187
|
+
<Message>At Tools.java:[lines 15-20]</Message>
|
188
|
+
</SourceLine>
|
189
|
+
</BugInstance>
|
190
|
+
<BugInstance type="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" priority="1" rank="5" abbrev="INT" category="CORRECTNESS" instanceHash="277eb5f4e73621ee0491d1161fccc096" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
|
191
|
+
<ShortMessage>Bad comparison of nonnegative value with negative constant or zero</ShortMessage>
|
192
|
+
<LongMessage>Bad comparison of nonnegative value with -1 in com.github.sample.view.ConversationAdapter.setConversations(ArrayList)</LongMessage>
|
193
|
+
<Class classname="com.github.sample.view.ConversationAdapter" primary="true">
|
194
|
+
<SourceLine classname="com.github.sample.view.ConversationAdapter" start="9" end="37" sourcefile="ConversationAdapter.java" sourcepath="com/github/sample/view/ConversationAdapter.java">
|
195
|
+
<Message>At ConversationAdapter.java:[lines 9-37]</Message>
|
196
|
+
</SourceLine>
|
197
|
+
<Message>In class com.github.sample.view.ConversationAdapter</Message>
|
198
|
+
</Class>
|
199
|
+
<Method classname="com.github.sample.view.ConversationAdapter" name="setConversations" signature="(Ljava/util/ArrayList;)V" isStatic="false" primary="true">
|
200
|
+
<SourceLine classname="com.github.sample.view.ConversationAdapter" start="32" end="37" startBytecode="0" endBytecode="109" sourcefile="ConversationAdapter.java" sourcepath="com/github/sample/view/ConversationAdapter.java"/>
|
201
|
+
<Message>In method com.github.sample.view.ConversationAdapter.setConversations(ArrayList)</Message>
|
202
|
+
</Method>
|
203
|
+
<Int value="-1" role="INT_VALUE">
|
204
|
+
<Message>Value -1</Message>
|
205
|
+
</Int>
|
206
|
+
<Method classname="java.util.ArrayList" name="size" signature="()I" isStatic="false" role="METHOD_RETURN_VALUE_OF">
|
207
|
+
<SourceLine classname="java.util.ArrayList" start="282" end="282" startBytecode="0" endBytecode="28" sourcefile="ArrayList.java" sourcepath="java/util/ArrayList.java"/>
|
208
|
+
<Message>Return value of java.util.ArrayList.size() of type int</Message>
|
209
|
+
</Method>
|
210
|
+
<SourceLine classname="com.github.sample.view.ConversationAdapter" primary="true" start="32" end="32" startBytecode="5" endBytecode="5" sourcefile="ConversationAdapter.java" sourcepath="com/github/sample/view/ConversationAdapter.java">
|
211
|
+
<Message>At ConversationAdapter.java:[line 32]</Message>
|
212
|
+
</SourceLine>
|
213
|
+
</BugInstance>
|
214
|
+
<BugCategory category="CORRECTNESS">
|
215
|
+
<Description>Correctness</Description>
|
216
|
+
</BugCategory>
|
217
|
+
<BugCategory category="PERFORMANCE">
|
218
|
+
<Description>Performance</Description>
|
219
|
+
</BugCategory>
|
220
|
+
<BugPattern type="NP_NULL_ON_SOME_PATH" abbrev="NP" category="CORRECTNESS">
|
221
|
+
<ShortDescription>Possible null pointer dereference</ShortDescription>
|
222
|
+
<Details><![CDATA[
|
223
|
+
|
224
|
+
<p> There is a branch of statement that, <em>if executed,</em> guarantees that
|
225
|
+
a null value will be dereferenced, which
|
226
|
+
would generate a <code>NullPointerException</code> when the code is executed.
|
227
|
+
Of course, the problem might be that the branch or statement is infeasible and that
|
228
|
+
the null pointer exception can't ever be executed; deciding that is beyond the ability of SpotBugs.
|
229
|
+
</p>
|
230
|
+
|
231
|
+
]]></Details>
|
232
|
+
</BugPattern>
|
233
|
+
<BugPattern type="UWF_UNWRITTEN_FIELD" abbrev="UwF" category="CORRECTNESS">
|
234
|
+
<ShortDescription>Unwritten field</ShortDescription>
|
235
|
+
<Details><![CDATA[
|
236
|
+
|
237
|
+
<p> This field is never written. All reads of it will return the default
|
238
|
+
value. Check for errors (should it have been initialized?), or remove it if it is useless.</p>
|
239
|
+
|
240
|
+
]]></Details>
|
241
|
+
</BugPattern>
|
242
|
+
<BugPattern type="NP_UNWRITTEN_FIELD" abbrev="NP" category="CORRECTNESS">
|
243
|
+
<ShortDescription>Read of unwritten field</ShortDescription>
|
244
|
+
<Details><![CDATA[
|
245
|
+
|
246
|
+
<p> The program is dereferencing a field that does not seem to ever have a non-null value written to it.
|
247
|
+
Unless the field is initialized via some mechanism not seen by the analysis,
|
248
|
+
dereferencing this value will generate a null pointer exception.
|
249
|
+
</p>
|
250
|
+
|
251
|
+
]]></Details>
|
252
|
+
</BugPattern>
|
253
|
+
<BugPattern type="SIC_INNER_SHOULD_BE_STATIC" abbrev="SIC" category="PERFORMANCE">
|
254
|
+
<ShortDescription>Should be a static inner class</ShortDescription>
|
255
|
+
<Details><![CDATA[
|
256
|
+
|
257
|
+
<p> This class is an inner class, but does not use its embedded reference
|
258
|
+
to the object which created it. This reference makes the instances
|
259
|
+
of the class larger, and may keep the reference to the creator object
|
260
|
+
alive longer than necessary. If possible, the class should be
|
261
|
+
made static.
|
262
|
+
</p>
|
263
|
+
|
264
|
+
]]></Details>
|
265
|
+
</BugPattern>
|
266
|
+
<BugPattern type="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" abbrev="INT" category="CORRECTNESS">
|
267
|
+
<ShortDescription>Bad comparison of nonnegative value with negative constant or zero</ShortDescription>
|
268
|
+
<Details><![CDATA[
|
269
|
+
|
270
|
+
<p> This code compares a value that is guaranteed to be non-negative with a negative constant or zero.
|
271
|
+
</p>
|
272
|
+
|
273
|
+
]]></Details>
|
274
|
+
</BugPattern>
|
275
|
+
<BugCode abbrev="NP" cweid="476">
|
276
|
+
<Description>Null pointer dereference</Description>
|
277
|
+
</BugCode>
|
278
|
+
<BugCode abbrev="UwF">
|
279
|
+
<Description>Unwritten field</Description>
|
280
|
+
</BugCode>
|
281
|
+
<BugCode abbrev="SIC">
|
282
|
+
<Description>Inner class could be made static</Description>
|
283
|
+
</BugCode>
|
284
|
+
<BugCode abbrev="INT">
|
285
|
+
<Description>Suspicious integer expression</Description>
|
286
|
+
</BugCode>
|
287
|
+
<Errors errors="0" missingClasses="4">
|
288
|
+
<MissingClass>android.app.Activity</MissingClass>
|
289
|
+
<MissingClass>android.util.Log</MissingClass>
|
290
|
+
<MissingClass>android.view.View</MissingClass>
|
291
|
+
<MissingClass>android.widget.TextView</MissingClass>
|
292
|
+
</Errors>
|
293
|
+
<FindBugsSummary timestamp="Mon, 22 Mar 2021 23:47:51 +0100" total_classes="14" referenced_classes="231" total_bugs="7" total_size="172" num_packages="4" java_version="1.8.0_242-release" vm_version="25.242-b3-6915495" cpu_seconds="22.84" clock_seconds="2.65" peak_mbytes="224.15" alloc_mbytes="455.50" gc_seconds="0.14" priority_2="4" priority_1="3">
|
294
|
+
<FileStats path="com/github/sample/BuildConfig.java" bugCount="0" size="10"/>
|
295
|
+
<FileStats path="com/github/sample/MainActivity.java" bugCount="1" size="23" bugHash="3d4de8c5d2e5bc77cb5db28779c6c525"/>
|
296
|
+
<FileStats path="com/github/sample/model/Conversation.java" bugCount="0" size="16"/>
|
297
|
+
<FileStats path="com/github/sample/model/Message.java" bugCount="0" size="20"/>
|
298
|
+
<FileStats path="com/github/sample/model/Type.java" bugCount="0" size="11"/>
|
299
|
+
<FileStats path="com/github/sample/model/User.java" bugCount="0" size="16"/>
|
300
|
+
<FileStats path="com/github/sample/tools/Tools.java" bugCount="5" size="25" bugHash="f4054acc9c26c5455b8a4dbd032c7b07"/>
|
301
|
+
<FileStats path="com/github/sample/view/ConversationAdapter.java" bugCount="1" size="19" bugHash="7f51758a280a8478b184c14ebff307d8"/>
|
302
|
+
<FileStats path="com/github/sample/view/ConversationClickListener.java" bugCount="0" size="2"/>
|
303
|
+
<FileStats path="com/github/sample/view/ConversationViewHolder.java" bugCount="0" size="15"/>
|
304
|
+
<FileStats path="com/github/sample/view/MainViewModel.java" bugCount="0" size="15"/>
|
305
|
+
<PackageStats package="com.github.sample" total_bugs="1" total_types="3" total_size="33" priority_1="1">
|
306
|
+
<ClassStats class="com.github.sample.BuildConfig" sourceFile="BuildConfig.java" interface="false" size="10" bugs="0"/>
|
307
|
+
<ClassStats class="com.github.sample.MainActivity" sourceFile="MainActivity.java" interface="false" size="16" bugs="1" priority_1="1"/>
|
308
|
+
<ClassStats class="com.github.sample.MainActivity$1" sourceFile="MainActivity.java" interface="false" size="7" bugs="0"/>
|
309
|
+
</PackageStats>
|
310
|
+
<PackageStats package="com.github.sample.model" total_bugs="0" total_types="4" total_size="63">
|
311
|
+
<ClassStats class="com.github.sample.model.Conversation" sourceFile="Conversation.java" interface="false" size="16" bugs="0"/>
|
312
|
+
<ClassStats class="com.github.sample.model.Message" sourceFile="Message.java" interface="false" size="20" bugs="0"/>
|
313
|
+
<ClassStats class="com.github.sample.model.Type" sourceFile="Type.java" interface="false" size="11" bugs="0"/>
|
314
|
+
<ClassStats class="com.github.sample.model.User" sourceFile="User.java" interface="false" size="16" bugs="0"/>
|
315
|
+
</PackageStats>
|
316
|
+
<PackageStats package="com.github.sample.tools" total_bugs="5" total_types="3" total_size="25" priority_2="4" priority_1="1">
|
317
|
+
<ClassStats class="com.github.sample.tools.Tools" sourceFile="Tools.java" interface="false" size="7" bugs="0"/>
|
318
|
+
<ClassStats class="com.github.sample.tools.Tools$Helper" sourceFile="Tools.java" interface="false" size="10" bugs="4" priority_2="3" priority_1="1"/>
|
319
|
+
<ClassStats class="com.github.sample.tools.Tools$Other" sourceFile="Tools.java" interface="false" size="8" bugs="1" priority_2="1"/>
|
320
|
+
</PackageStats>
|
321
|
+
<PackageStats package="com.github.sample.view" total_bugs="1" total_types="4" total_size="51" priority_1="1">
|
322
|
+
<ClassStats class="com.github.sample.view.ConversationAdapter" sourceFile="ConversationAdapter.java" interface="false" size="19" bugs="1" priority_1="1"/>
|
323
|
+
<ClassStats class="com.github.sample.view.ConversationClickListener" sourceFile="ConversationClickListener.java" interface="true" size="2" bugs="0"/>
|
324
|
+
<ClassStats class="com.github.sample.view.ConversationViewHolder" sourceFile="ConversationViewHolder.java" interface="false" size="15" bugs="0"/>
|
325
|
+
<ClassStats class="com.github.sample.view.MainViewModel" sourceFile="MainViewModel.java" interface="false" size="15" bugs="0"/>
|
326
|
+
</PackageStats>
|
327
|
+
<FindBugsProfile>
|
328
|
+
<ClassProfile name="edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine" totalMilliseconds="315" invocations="1076" avgMicrosecondsPerInvocation="293" maxMicrosecondsPerInvocation="20284" standardDeviationMicrosecondsPerInvocation="1002"/>
|
329
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.FindNoSideEffectMethods" totalMilliseconds="228" invocations="231" avgMicrosecondsPerInvocation="990" maxMicrosecondsPerInvocation="17010" standardDeviationMicrosecondsPerInvocation="2209"/>
|
330
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.FieldItemSummary" totalMilliseconds="208" invocations="231" avgMicrosecondsPerInvocation="902" maxMicrosecondsPerInvocation="14783" standardDeviationMicrosecondsPerInvocation="1877"/>
|
331
|
+
<ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory" totalMilliseconds="164" invocations="43" avgMicrosecondsPerInvocation="3828" maxMicrosecondsPerInvocation="158335" standardDeviationMicrosecondsPerInvocation="23841"/>
|
332
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.EqualsOperandShouldHaveClassCompatibleWithThis" totalMilliseconds="131" invocations="231" avgMicrosecondsPerInvocation="570" maxMicrosecondsPerInvocation="109141" standardDeviationMicrosecondsPerInvocation="7163"/>
|
333
|
+
<ClassProfile name="edu.umd.cs.findbugs.OpcodeStack$JumpInfoFactory" totalMilliseconds="107" invocations="362" avgMicrosecondsPerInvocation="296" maxMicrosecondsPerInvocation="4988" standardDeviationMicrosecondsPerInvocation="423"/>
|
334
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers" totalMilliseconds="78" invocations="231" avgMicrosecondsPerInvocation="340" maxMicrosecondsPerInvocation="6802" standardDeviationMicrosecondsPerInvocation="765"/>
|
335
|
+
<ClassProfile name="edu.umd.cs.findbugs.classfile.engine.ClassDataAnalysisEngine" totalMilliseconds="70" invocations="1080" avgMicrosecondsPerInvocation="65" maxMicrosecondsPerInvocation="1086" standardDeviationMicrosecondsPerInvocation="60"/>
|
336
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.CalledMethods" totalMilliseconds="66" invocations="231" avgMicrosecondsPerInvocation="289" maxMicrosecondsPerInvocation="7028" standardDeviationMicrosecondsPerInvocation="763"/>
|
337
|
+
<ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.JavaClassAnalysisEngine" totalMilliseconds="66" invocations="293" avgMicrosecondsPerInvocation="225" maxMicrosecondsPerInvocation="16463" standardDeviationMicrosecondsPerInvocation="1003"/>
|
338
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase" totalMilliseconds="54" invocations="231" avgMicrosecondsPerInvocation="236" maxMicrosecondsPerInvocation="4381" standardDeviationMicrosecondsPerInvocation="456"/>
|
339
|
+
<ClassProfile name="edu.umd.cs.findbugs.util.TopologicalSort" totalMilliseconds="46" invocations="903" avgMicrosecondsPerInvocation="51" maxMicrosecondsPerInvocation="1384" standardDeviationMicrosecondsPerInvocation="108"/>
|
340
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.FunctionsThatMightBeMistakenForProcedures" totalMilliseconds="39" invocations="231" avgMicrosecondsPerInvocation="172" maxMicrosecondsPerInvocation="3428" standardDeviationMicrosecondsPerInvocation="398"/>
|
341
|
+
<ClassProfile name="edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical" totalMilliseconds="38" invocations="231" avgMicrosecondsPerInvocation="167" maxMicrosecondsPerInvocation="9114" standardDeviationMicrosecondsPerInvocation="640"/>
|
342
|
+
</FindBugsProfile>
|
343
|
+
</FindBugsSummary>
|
344
|
+
<ClassFeatures></ClassFeatures>
|
345
|
+
<History></History>
|
346
|
+
</BugCollection>
|