ManagerBruteForce.java

1
/*******************************************************************************
2
 * Copyhacked (H) 2012-2025.
3
 * This program and the accompanying materials
4
 * are made available under no term at all, use it like
5
 * you want, but share and discuss it
6
 * every time possible with every body.
7
 *
8
 * Contributors:
9
 *      ron190 at ymail dot com - initial implementation
10
 ******************************************************************************/
11
package com.jsql.view.swing.manager;
12
13
import com.jsql.util.I18nUtil;
14
import com.jsql.util.LogLevelUtil;
15
import com.jsql.util.bruter.ActionCoder;
16
import com.jsql.view.swing.manager.util.ActionBruteForce;
17
import com.jsql.view.swing.manager.util.JButtonStateful;
18
import com.jsql.view.swing.manager.util.ModelBrute;
19
import com.jsql.view.swing.manager.util.ModelSpinner;
20
import com.jsql.view.swing.panel.preferences.listener.SpinnerMouseWheelListener;
21
import com.jsql.view.swing.text.*;
22
import com.jsql.view.swing.util.I18nViewUtil;
23
import org.apache.commons.lang3.StringUtils;
24
import org.apache.logging.log4j.LogManager;
25
import org.apache.logging.log4j.Logger;
26
27
import javax.swing.*;
28
import java.awt.*;
29
import java.util.Arrays;
30
import java.util.concurrent.atomic.AtomicReference;
31
32
/**
33
 * Manager to brute force a hash of various types.
34
 */
35
public class ManagerBruteForce extends JPanel {
36
37
    private static final Logger LOGGER = LogManager.getRootLogger();
38
39
    public static final String BRUTEFORCE_RUN_BUTTON_TOOLTIP = "BRUTEFORCE_RUN_BUTTON_TOOLTIP";
40
    public static final String BRUTEFORCE_HASH_TOOLTIP = "BRUTEFORCE_HASH_TOOLTIP";
41
    public static final String BRUTEFORCE_EXCLUDE_TOOLTIP = "BRUTEFORCE_EXCLUDE_TOOLTIP";
42
43
    private JButtonStateful run;
44
    private JTextField hash;
45
    private JComboBox<String> hashTypes;
46
    private final AtomicReference<JCheckBox> lowerCaseCharacters = new AtomicReference<>();
47
    private final AtomicReference<JCheckBox> upperCaseCharacters = new AtomicReference<>();
48
    private final AtomicReference<JCheckBox> numericCharacters = new AtomicReference<>();
49
    private final AtomicReference<JCheckBox> specialCharacters = new AtomicReference<>();
50
    private JTextField exclude;
51
    private final AtomicReference<JSpinner> minimumLength = new AtomicReference<>();
52
    private final AtomicReference<JSpinner> maximumLength = new AtomicReference<>();
53
    private final JTextPane result;
54
    
55
    /**
56
     * Animated GIF displayed during attack.
57
     */
58
    private JProgressBar progressBar;
59
    private final Component horizontalGlue = Box.createHorizontalGlue();
60
61
    /**
62
     * Create a panel to run brute force attack.
63
     */
64
    public ManagerBruteForce() {
65
        super(new BorderLayout());
66
67
        JPanel panelOptions = this.initOptionsPanel();
68 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(panelOptions, BorderLayout.NORTH);
69
70
        var placeholder = new JTextPanePlaceholder(I18nUtil.valueByKey("BRUTEFORCE_RESULT"));
71
        this.result = new JPopupTextPane(placeholder).getProxy();
72 1 1. <init> : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_RESULT", placeholder);
73 1 1. <init> : removed call to javax/swing/JTextPane::setName → NO_COVERAGE
        this.result.setName("managerBruterResult");
74 1 1. <init> : removed call to javax/swing/JTextPane::setEditable → NO_COVERAGE
        this.result.setEditable(false);
75 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(new JScrollPane(this.result), BorderLayout.CENTER);
76
77
        JPanel panelButton = this.initPanelButton();
78 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(panelButton, BorderLayout.SOUTH);
79
    }
80
81
    private JPanel initPanelButton() {
82
        var lastLine = new JPanel();
83 1 1. initPanelButton : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        lastLine.setLayout(new BoxLayout(lastLine, BoxLayout.X_AXIS));
84
85
        var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP)));
86
        this.run = new JButtonStateful("BRUTEFORCE_RUN_BUTTON_LABEL") {
87
            @Override
88
            public JToolTip createToolTip() {
89 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$1::createToolTip → NO_COVERAGE
                return tooltip.get();
90
            }
91
        };
92 1 1. initPanelButton : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_RUN_BUTTON_LABEL", this.run);
93 1 1. initPanelButton : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP, tooltip.get());
94 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE
        this.run.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP));
95
96 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setName → NO_COVERAGE
        this.run.setName("managerBruterRun");
97 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE
        this.run.addActionListener(new ActionBruteForce(this));
98
99
        this.progressBar = new JProgressBar();
100 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setIndeterminate → NO_COVERAGE
        this.progressBar.setIndeterminate(true);
101 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE
        this.progressBar.setVisible(false);
102 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setBorder → NO_COVERAGE
        this.progressBar.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
103
104
        lastLine.add(this.horizontalGlue);
105
        lastLine.add(this.progressBar);
106
        lastLine.add(this.run);
107 1 1. initPanelButton : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initPanelButton → NO_COVERAGE
        return lastLine;
108
    }
109
110
    public void showLoader(boolean isVisible) {
111 1 1. showLoader : removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE
        this.progressBar.setVisible(isVisible);
112 2 1. showLoader : removed call to java/awt/Component::setVisible → NO_COVERAGE
2. showLoader : negated conditional → NO_COVERAGE
        this.horizontalGlue.setVisible(!isVisible);
113
    }
114
115
    private JPanel initOptionsPanel() {
116
        var options = new JPanel(new BorderLayout());
117
        JPanel firstLine = this.initFirstLine();
118
        final JPanel secondLine = this.initSecondLine();
119
        JPanel thirdLine = this.initThirdLine();
120
        
121
        final var secondAndThirdLine = new JPanel(new BorderLayout());
122 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        secondAndThirdLine.add(secondLine, BorderLayout.NORTH);
123 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        secondAndThirdLine.add(thirdLine, BorderLayout.SOUTH);
124
125 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        options.add(firstLine, BorderLayout.NORTH);
126 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        options.add(secondAndThirdLine, BorderLayout.SOUTH);
127 1 1. initOptionsPanel : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initOptionsPanel → NO_COVERAGE
        return options;
128
    }
129
130
    private JPanel initFirstLine() {
131
        var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP)));
132
        var placeholder = new JTextFieldPlaceholder(I18nUtil.valueByKey("BRUTEFORCE_HASH_LABEL")) {
133
            @Override
134
            public JToolTip createToolTip() {
135 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$2::createToolTip → NO_COVERAGE
                return tooltip.get();
136
            }
137
        };
138
        this.hash = new JPopupTextField(placeholder).getProxy();
139 1 1. initFirstLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP, tooltip.get());
140 1 1. initFirstLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_HASH_LABEL", this.hash);
141 1 1. initFirstLine : removed call to javax/swing/JTextField::setName → NO_COVERAGE
        this.hash.setName("managerBruterHash");
142 1 1. initFirstLine : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE
        this.hash.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP));
143
144
        var firstLine = new JPanel(new BorderLayout());
145 1 1. initFirstLine : removed call to javax/swing/JPanel::add → NO_COVERAGE
        firstLine.add(this.hash, BorderLayout.CENTER);
146 1 1. initFirstLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initFirstLine → NO_COVERAGE
        return firstLine;
147
    }
148
149
    private JPanel initSecondLine() {
150
        final var secondLine = new JPanel();
151 1 1. initSecondLine : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        secondLine.setLayout(new BoxLayout(secondLine, BoxLayout.X_AXIS));
152
153 1 1. lambda$initSecondLine$0 : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::lambda$initSecondLine$0 → NO_COVERAGE
        this.hashTypes = new JComboBox<>(ActionCoder.getHashes().toArray(String[]::new));
154 1 1. initSecondLine : removed call to javax/swing/JComboBox::setSelectedIndex → NO_COVERAGE
        this.hashTypes.setSelectedIndex(6);
155 1 1. initSecondLine : removed call to javax/swing/JComboBox::setToolTipText → NO_COVERAGE
        this.hashTypes.setToolTipText(I18nUtil.valueByKey("BRUTEFORCE_HASH_TYPE_TOOLTIP"));
156 1 1. initSecondLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_HASH_TYPE_TOOLTIP", this.hashTypes);
157
        secondLine.add(this.hashTypes);
158
159
        Arrays.asList(
160
            new ModelBrute(this.lowerCaseCharacters, "a-z", "BRUTEFORCE_LCASE_TOOLTIP"),
161
            new ModelBrute(this.upperCaseCharacters, "A-Z", "BRUTEFORCE_UCASE_TOOLTIP"),
162
            new ModelBrute(this.numericCharacters, "0-9", "BRUTEFORCE_NUM_TOOLTIP"),
163
            new ModelBrute(this.specialCharacters, "Special", "BRUTEFORCE_SPEC_TOOLTIP")
164 1 1. initSecondLine : removed call to java/util/List::forEach → NO_COVERAGE
        ).forEach(modelBrute -> {
165
            var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(modelBrute.i18nTooltip())));
166
            var checkbox = new JCheckBox(modelBrute.text(), true) {
167
                @Override
168
                public JToolTip createToolTip() {
169 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$3::createToolTip → NO_COVERAGE
                    return tooltip.get();
170
                }
171
            };
172 1 1. lambda$initSecondLine$1 : removed call to com/jsql/view/swing/manager/ManagerBruteForce$3::setName → NO_COVERAGE
            checkbox.setName(modelBrute.text());
173 1 1. lambda$initSecondLine$1 : removed call to com/jsql/view/swing/manager/ManagerBruteForce$3::setToolTipText → NO_COVERAGE
            checkbox.setToolTipText(I18nUtil.valueByKey(modelBrute.i18nTooltip()));
174 1 1. lambda$initSecondLine$1 : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
            I18nViewUtil.addComponentForKey(modelBrute.i18nTooltip(), tooltip.get());
175
            secondLine.add(Box.createHorizontalStrut(5));
176
            secondLine.add(checkbox);
177 1 1. lambda$initSecondLine$1 : removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE
            modelBrute.checkbox().set(checkbox);
178
        });
179
180 1 1. initSecondLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initSecondLine → NO_COVERAGE
        return secondLine;
181
    }
182
183
    private JPanel initThirdLine() {
184
        var thirdLine = new JPanel();
185 1 1. initThirdLine : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        thirdLine.setLayout(new BoxLayout(thirdLine, BoxLayout.X_AXIS));
186
187
        final var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP)));
188
        var placeholderTooltip = new JTextFieldPlaceholder(I18nUtil.valueByKey("BRUTEFORCE_EXCLUDE_LABEL")) {
189
            @Override
190
            public JToolTip createToolTip() {
191 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$4::createToolTip → NO_COVERAGE
                return tooltip.get();
192
            }
193
        };
194
        this.exclude = new JPopupTextField(placeholderTooltip).getProxy();
195 1 1. initThirdLine : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE
        this.exclude.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP));
196 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_EXCLUDE_LABEL", this.exclude);
197 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP, tooltip.get());
198
        thirdLine.add(this.exclude);
199
200
        Arrays.asList(
201
            new ModelSpinner(1, this.minimumLength, "BRUTEFORCE_MIN_LABEL", "BRUTEFORCE_MIN_TOOLTIP"),
202
            new ModelSpinner(5, this.maximumLength, "BRUTEFORCE_MAX_LABEL", "BRUTEFORCE_MAX_TOOLTIP")
203 2 1. lambda$initThirdLine$3 : removed call to javax/swing/SwingUtilities::invokeLater → NO_COVERAGE
2. initThirdLine : removed call to java/util/List::forEach → NO_COVERAGE
        ).forEach(model -> SwingUtilities.invokeLater(() -> {  // #96099: JSpinner not fully initialized
204
            final var tooltipMax = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(model.i18n())));
205
            JSpinner spinner;
206
            try {  // Fixes #96099 #96407: NullPointerException on new JSpinner
207
                spinner = new JSpinner() {
208
                    @Override
209
                    public JToolTip createToolTip() {
210 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$5::createToolTip → NO_COVERAGE
                        return tooltipMax.get();
211
                    }
212
                };
213
            } catch (NullPointerException e) {
214
                LOGGER.log(LogLevelUtil.CONSOLE_JAVA, "Spinner creation failed, restart app or check your jre", e);
215
                return;
216
            }
217 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setModel → NO_COVERAGE
            spinner.setModel(new SpinnerNumberModel(model.value(), 1, 10000, 1));
218 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE
            spinner.addMouseWheelListener(new SpinnerMouseWheelListener());
219 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setToolTipText → NO_COVERAGE
            spinner.setToolTipText(I18nUtil.valueByKey(model.i18n()));
220 1 1. lambda$initThirdLine$2 : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
            I18nViewUtil.addComponentForKey(model.i18n(), tooltipMax.get());
221 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setPreferredSize → NO_COVERAGE
            spinner.setPreferredSize(new Dimension(
222 1 1. lambda$initThirdLine$2 : Replaced double division with multiplication → NO_COVERAGE
                (int) (spinner.getPreferredSize().width/1.8),
223
                spinner.getPreferredSize().height
224
            ));
225
226
            var label = new JLabel(StringUtils.SPACE + I18nUtil.valueByKey(model.label()), SwingConstants.RIGHT);
227 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE
            label.setMaximumSize(new Dimension(label.getPreferredSize().width, label.getPreferredSize().height));
228
            thirdLine.add(Box.createHorizontalStrut(5));
229
            thirdLine.add(label);
230 1 1. lambda$initThirdLine$2 : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
            I18nViewUtil.addComponentForKey(model.label(), label);
231
232
            thirdLine.add(spinner);
233 1 1. lambda$initThirdLine$2 : removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE
            model.spinner().set(spinner);
234
        }));
235
236 1 1. initThirdLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initThirdLine → NO_COVERAGE
        return thirdLine;
237
    }
238
239
    
240
    // Getter and setter
241
242
    public JButtonStateful getRun() {
243 1 1. getRun : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getRun → NO_COVERAGE
        return this.run;
244
    }
245
246
    public JTextField getHash() {
247 1 1. getHash : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHash → NO_COVERAGE
        return this.hash;
248
    }
249
250
    public JComboBox<String> getHashTypes() {
251 1 1. getHashTypes : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHashTypes → NO_COVERAGE
        return this.hashTypes;
252
    }
253
254
    public JCheckBox getLowerCaseCharacters() {
255 1 1. getLowerCaseCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getLowerCaseCharacters → NO_COVERAGE
        return this.lowerCaseCharacters.get();
256
    }
257
258
    public JCheckBox getUpperCaseCharacters() {
259 1 1. getUpperCaseCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getUpperCaseCharacters → NO_COVERAGE
        return this.upperCaseCharacters.get();
260
    }
261
262
    public JCheckBox getNumericCharacters() {
263 1 1. getNumericCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getNumericCharacters → NO_COVERAGE
        return this.numericCharacters.get();
264
    }
265
266
    public JCheckBox getSpecialCharacters() {
267 1 1. getSpecialCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getSpecialCharacters → NO_COVERAGE
        return this.specialCharacters.get();
268
    }
269
270
    public JTextField getExclude() {
271 1 1. getExclude : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getExclude → NO_COVERAGE
        return this.exclude;
272
    }
273
274
    public JSpinner getMinimumLength() {
275 1 1. getMinimumLength : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMinimumLength → NO_COVERAGE
        return this.minimumLength.get();
276
    }
277
278
    public JSpinner getMaximumLength() {
279 1 1. getMaximumLength : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMaximumLength → NO_COVERAGE
        return this.maximumLength.get();
280
    }
281
282
    public JTextPane getResult() {
283 1 1. getResult : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getResult → NO_COVERAGE
        return this.result;
284
    }
285
}

Mutations

68

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

72

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

73

1.1
Location : <init>
Killed by : none
removed call to javax/swing/JTextPane::setName → NO_COVERAGE

74

1.1
Location : <init>
Killed by : none
removed call to javax/swing/JTextPane::setEditable → NO_COVERAGE

75

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

78

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

83

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

89

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$1::createToolTip → NO_COVERAGE

92

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

93

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

94

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE

96

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setName → NO_COVERAGE

97

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE

100

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setIndeterminate → NO_COVERAGE

101

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE

102

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setBorder → NO_COVERAGE

107

1.1
Location : initPanelButton
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initPanelButton → NO_COVERAGE

111

1.1
Location : showLoader
Killed by : none
removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE

112

1.1
Location : showLoader
Killed by : none
removed call to java/awt/Component::setVisible → NO_COVERAGE

2.2
Location : showLoader
Killed by : none
negated conditional → NO_COVERAGE

122

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

123

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

125

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

126

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

127

1.1
Location : initOptionsPanel
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initOptionsPanel → NO_COVERAGE

135

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$2::createToolTip → NO_COVERAGE

139

1.1
Location : initFirstLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

140

1.1
Location : initFirstLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

141

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JTextField::setName → NO_COVERAGE

142

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE

145

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

146

1.1
Location : initFirstLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initFirstLine → NO_COVERAGE

151

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

153

1.1
Location : lambda$initSecondLine$0
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::lambda$initSecondLine$0 → NO_COVERAGE

154

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JComboBox::setSelectedIndex → NO_COVERAGE

155

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JComboBox::setToolTipText → NO_COVERAGE

156

1.1
Location : initSecondLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

164

1.1
Location : initSecondLine
Killed by : none
removed call to java/util/List::forEach → NO_COVERAGE

169

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$3::createToolTip → NO_COVERAGE

172

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce$3::setName → NO_COVERAGE

173

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce$3::setToolTipText → NO_COVERAGE

174

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

177

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE

180

1.1
Location : initSecondLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initSecondLine → NO_COVERAGE

185

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

191

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$4::createToolTip → NO_COVERAGE

195

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE

196

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

197

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

203

1.1
Location : lambda$initThirdLine$3
Killed by : none
removed call to javax/swing/SwingUtilities::invokeLater → NO_COVERAGE

2.2
Location : initThirdLine
Killed by : none
removed call to java/util/List::forEach → NO_COVERAGE

210

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$5::createToolTip → NO_COVERAGE

217

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setModel → NO_COVERAGE

218

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE

219

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setToolTipText → NO_COVERAGE

220

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

221

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setPreferredSize → NO_COVERAGE

222

1.1
Location : lambda$initThirdLine$2
Killed by : none
Replaced double division with multiplication → NO_COVERAGE

227

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE

230

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

233

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE

236

1.1
Location : initThirdLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initThirdLine → NO_COVERAGE

243

1.1
Location : getRun
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getRun → NO_COVERAGE

247

1.1
Location : getHash
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHash → NO_COVERAGE

251

1.1
Location : getHashTypes
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHashTypes → NO_COVERAGE

255

1.1
Location : getLowerCaseCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getLowerCaseCharacters → NO_COVERAGE

259

1.1
Location : getUpperCaseCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getUpperCaseCharacters → NO_COVERAGE

263

1.1
Location : getNumericCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getNumericCharacters → NO_COVERAGE

267

1.1
Location : getSpecialCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getSpecialCharacters → NO_COVERAGE

271

1.1
Location : getExclude
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getExclude → NO_COVERAGE

275

1.1
Location : getMinimumLength
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMinimumLength → NO_COVERAGE

279

1.1
Location : getMaximumLength
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMaximumLength → NO_COVERAGE

283

1.1
Location : getResult
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getResult → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.25.5 support