View | Details | Raw Unified | Return to bug 57981
Collapse All | Expand All

(-)a/src/core/org/apache/jmeter/JMeter.java (-11 / +7 lines)
Lines 593-602 public class JMeter implements JMeterPlugin { Link Here
593
        // These can potentially occur multiple times
593
        // These can potentially occur multiple times
594
594
595
        List<CLOption> clOptions = parser.getArguments();
595
        List<CLOption> clOptions = parser.getArguments();
596
        int size = clOptions.size();
596
        for (CLOption option : clOptions) {
597
598
        for (int i = 0; i < size; i++) {
599
            CLOption option = clOptions.get(i);
600
            String name = option.getArgument(0);
597
            String name = option.getArgument(0);
601
            String value = option.getArgument(1);
598
            String value = option.getArgument(1);
602
            FileInputStream fis = null;
599
            FileInputStream fis = null;
Lines 605-611 public class JMeter implements JMeterPlugin { Link Here
605
602
606
            // Should not have any text arguments
603
            // Should not have any text arguments
607
            case CLOption.TEXT_ARGUMENT:
604
            case CLOption.TEXT_ARGUMENT:
608
                throw new IllegalArgumentException("Unknown arg: "+option.getArgument());
605
                throw new IllegalArgumentException("Unknown arg: " + option.getArgument());
609
606
610
            case PROPFILE2_OPT: // Bug 33920 - allow multiple props
607
            case PROPFILE2_OPT: // Bug 33920 - allow multiple props
611
                try {
608
                try {
Lines 628-634 public class JMeter implements JMeterPlugin { Link Here
628
                    fis = new FileInputStream(new File(name));
625
                    fis = new FileInputStream(new File(name));
629
                    System.getProperties().load(fis);
626
                    System.getProperties().load(fis);
630
                } catch (IOException e) {
627
                } catch (IOException e) {
631
                    log.warn("Cannot find system property file "+e.getLocalizedMessage());
628
                    log.warn("Cannot find system property file " + e.getLocalizedMessage());
632
                } finally {
629
                } finally {
633
                    JOrphanUtils.closeQuietly(fis);
630
                    JOrphanUtils.closeQuietly(fis);
634
                }
631
                }
Lines 658-671 public class JMeter implements JMeterPlugin { Link Here
658
                } else {
655
                } else {
659
                    File propFile = new File(name);
656
                    File propFile = new File(name);
660
                    if (propFile.canRead()) {
657
                    if (propFile.canRead()) {
661
                        log.info("Setting Global properties from the file "+name);
658
                        log.info("Setting Global properties from the file " + name);
662
                        try {
659
                        try {
663
                            fis = new FileInputStream(propFile);
660
                            fis = new FileInputStream(propFile);
664
                            remoteProps.load(fis);
661
                            remoteProps.load(fis);
665
                        } catch (FileNotFoundException e) {
662
                        } catch (FileNotFoundException e) {
666
                            log.warn("Could not find properties file: "+e.getLocalizedMessage());
663
                            log.warn("Could not find properties file: " + e.getLocalizedMessage());
667
                        } catch (IOException e) {
664
                        } catch (IOException e) {
668
                            log.warn("Could not load properties file: "+e.getLocalizedMessage());
665
                            log.warn("Could not load properties file: " + e.getLocalizedMessage());
669
                        } finally {
666
                        } finally {
670
                            JOrphanUtils.closeQuietly(fis);
667
                            JOrphanUtils.closeQuietly(fis);
671
                        }
668
                        }
Lines 760-767 public class JMeter implements JMeterPlugin { Link Here
760
                    new SearchByClass<>(ReplaceableController.class);
757
                    new SearchByClass<>(ReplaceableController.class);
761
            tree.traverse(replaceableControllers);
758
            tree.traverse(replaceableControllers);
762
            Collection<ReplaceableController> replaceableControllersRes = replaceableControllers.getSearchResults();
759
            Collection<ReplaceableController> replaceableControllersRes = replaceableControllers.getSearchResults();
763
            for (Iterator<ReplaceableController> iter = replaceableControllersRes.iterator(); iter.hasNext();) {
760
            for (ReplaceableController replaceableController : replaceableControllersRes) {
764
                ReplaceableController replaceableController = iter.next();
765
                replaceableController.resolveReplacementSubTree(root);
761
                replaceableController.resolveReplacementSubTree(root);
766
            }
762
            }
767
763
(-)a/src/core/org/apache/jmeter/gui/util/FileListPanel.java (-2 / +2 lines)
Lines 207-214 public class FileListPanel extends JPanel implements ActionListener { Link Here
207
            chooser.showOpenDialog(GuiPackage.getInstance().getMainFrame());
207
            chooser.showOpenDialog(GuiPackage.getInstance().getMainFrame());
208
            File[] cfiles = chooser.getSelectedFiles();
208
            File[] cfiles = chooser.getSelectedFiles();
209
            if (cfiles != null) {
209
            if (cfiles != null) {
210
                for (int idx=0; idx < cfiles.length; idx++) {
210
                for (File cfile : cfiles) {
211
                    this.addFilename(cfiles[idx].getPath());
211
                    this.addFilename(cfile.getPath());
212
                }
212
                }
213
                fireFileChanged();
213
                fireFileChanged();
214
            }
214
            }
(-)a/src/core/org/apache/jmeter/gui/util/JLabeledRadioI18N.java (-6 / +6 lines)
Lines 101-115 public class JLabeledRadioI18N extends JPanel implements JLabeledField, ActionLi Link Here
101
     *
101
     *
102
     */
102
     */
103
    private void initButtonGroup(String[] resouces, String selected) {
103
    private void initButtonGroup(String[] resouces, String selected) {
104
        for (int idx = 0; idx < resouces.length; idx++) {
104
        for (String resource : resouces) {
105
            JRadioButton btn = new JRadioButton(JMeterUtils.getResString(resouces[idx]));
105
            JRadioButton btn = new JRadioButton(JMeterUtils.getResString(resource));
106
            btn.setActionCommand(resouces[idx]);
106
            btn.setActionCommand(resource);
107
            btn.addActionListener(this);
107
            btn.addActionListener(this);
108
            // add the button to the button group
108
            // add the button to the button group
109
            this.bGroup.add(btn);
109
            this.bGroup.add(btn);
110
            // add the button
110
            // add the button
111
            this.add(btn);
111
            this.add(btn);
112
            if (selected != null && selected.equals(resouces[idx])) {
112
            if (selected != null && selected.equals(resource)) {
113
                btn.setSelected(true);
113
                btn.setSelected(true);
114
            }
114
            }
115
        }
115
        }
Lines 195-202 public class JLabeledRadioI18N extends JPanel implements JLabeledField, ActionLi Link Here
195
     */
195
     */
196
    private void notifyChangeListeners() {
196
    private void notifyChangeListeners() {
197
        ChangeEvent ce = new ChangeEvent(this);
197
        ChangeEvent ce = new ChangeEvent(this);
198
        for (int index = 0; index < mChangeListeners.size(); index++) {
198
        for (ChangeListener mChangeListener : mChangeListeners) {
199
            mChangeListeners.get(index).stateChanged(ce);
199
            mChangeListener.stateChanged(ce);
200
        }
200
        }
201
    }
201
    }
202
202
(-)a/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java (-16 / +12 lines)
Lines 213-220 public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener { Link Here
213
        if (menu != null) {
213
        if (menu != null) {
214
            editMenu.removeAll();
214
            editMenu.removeAll();
215
            Component[] comps = menu.getComponents();
215
            Component[] comps = menu.getComponents();
216
            for (int i = 0; i < comps.length; i++) {
216
            for (Component comp : comps) {
217
                editMenu.add(comps[i]);
217
                editMenu.add(comp);
218
            }
218
            }
219
            editMenu.setEnabled(true);
219
            editMenu.setEnabled(true);
220
        } else {
220
        } else {
Lines 275-285 public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener { Link Here
275
        this.add(searchMenu);
275
        this.add(searchMenu);
276
        this.add(runMenu);
276
        this.add(runMenu);
277
        this.add(optionsMenu);
277
        this.add(optionsMenu);
278
        for (Iterator<MenuCreator> iterator = menuCreators.iterator(); iterator.hasNext();) {
278
        for (MenuCreator menuCreator : menuCreators) {
279
            MenuCreator menuCreator = iterator.next();
280
            JMenu[] topLevelMenus = menuCreator.getTopLevelMenus();
279
            JMenu[] topLevelMenus = menuCreator.getTopLevelMenus();
281
            for (JMenu topLevelMenu : topLevelMenus) {
280
            for (JMenu topLevelMenu : topLevelMenus) {
282
                this.add(topLevelMenu);                
281
                this.add(topLevelMenu);
283
            }
282
            }
284
        }
283
        }
285
        this.add(helpMenu);
284
        this.add(helpMenu);
Lines 320-332 public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener { Link Here
320
        JMenuItem functionHelper = makeMenuItemRes("function_dialog_menu_item", 'F', ActionNames.FUNCTIONS, KeyStrokes.FUNCTIONS); //$NON-NLS-1$
319
        JMenuItem functionHelper = makeMenuItemRes("function_dialog_menu_item", 'F', ActionNames.FUNCTIONS, KeyStrokes.FUNCTIONS); //$NON-NLS-1$
321
320
322
        lafMenu = makeMenuRes("appearance",'L'); //$NON-NLS-1$
321
        lafMenu = makeMenuRes("appearance",'L'); //$NON-NLS-1$
323
        UIManager.LookAndFeelInfo lafs[] = getAllLAFs();
322
        for (LookAndFeelInfo laf : getAllLAFs()) {
324
        for (int i = 0; i < lafs.length; ++i) {
323
            JMenuItem menuItem = new JMenuItem(laf.getName());
325
            JMenuItem laf = new JMenuItem(lafs[i].getName());
324
            menuItem.addActionListener(ActionRouter.getInstance());
326
            laf.addActionListener(ActionRouter.getInstance());
325
            menuItem.setActionCommand(ActionNames.LAF_PREFIX + laf.getClassName());
327
            laf.setActionCommand(ActionNames.LAF_PREFIX + lafs[i].getClassName());
326
            menuItem.setToolTipText(laf.getClassName()); // show the classname to the user
328
            laf.setToolTipText(lafs[i].getClassName()); // show the classname to the user
327
            lafMenu.add(menuItem);
329
            lafMenu.add(laf);
330
        }
328
        }
331
        optionsMenu.add(functionHelper);
329
        optionsMenu.add(functionHelper);
332
        optionsMenu.add(lafMenu);
330
        optionsMenu.add(lafMenu);
Lines 724-733 public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener { Link Here
724
            }
722
            }
725
        }
723
        }
726
724
727
        MenuElement[] subelements = menu.getSubElements();
725
        for (MenuElement subElement : menu.getSubElements()) {
728
726
            updateMenuElement(subElement);
729
        for (int i = 0; i < subelements.length; i++) {
730
            updateMenuElement(subelements[i]);
731
        }
727
        }
732
    }
728
    }
733
729
(-)a/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java (-7 / +6 lines)
Lines 205-213 public class JMeterToolBar extends JToolBar implements LocaleChangeListener { Link Here
205
    private Map<String, Boolean> getCurrentButtonsStates() {
205
    private Map<String, Boolean> getCurrentButtonsStates() {
206
        Component[] components = getComponents();
206
        Component[] components = getComponents();
207
        Map<String, Boolean> buttonStates = new HashMap<>(components.length);
207
        Map<String, Boolean> buttonStates = new HashMap<>(components.length);
208
        for (int i = 0; i < components.length; i++) {
208
        for (Component component : components) {
209
            if (components[i] instanceof JButton) {
209
            if (component instanceof JButton) {
210
                JButton button = (JButton) components[i];
210
                JButton button = (JButton) component;
211
                buttonStates.put(button.getActionCommand(), Boolean.valueOf(button.isEnabled()));
211
                buttonStates.put(button.getActionCommand(), Boolean.valueOf(button.isEnabled()));
212
            }
212
            }
213
        }
213
        }
Lines 286-295 public class JMeterToolBar extends JToolBar implements LocaleChangeListener { Link Here
286
     *            {@link Map} of button names and their states
286
     *            {@link Map} of button names and their states
287
     */
287
     */
288
    private void updateButtons(Map<String, Boolean> buttonStates) {
288
    private void updateButtons(Map<String, Boolean> buttonStates) {
289
        Component[] components = getComponents();
289
        for (Component component : getComponents()) {
290
        for (int i = 0; i < components.length; i++) {
290
            if (component instanceof JButton) {
291
            if (components[i] instanceof JButton) {
291
                JButton button = (JButton) component;
292
                JButton button = (JButton) components[i];
293
                Boolean enabled = buttonStates.get(button.getActionCommand());
292
                Boolean enabled = buttonStates.get(button.getActionCommand());
294
                if (enabled != null) {
293
                if (enabled != null) {
295
                    button.setEnabled(enabled.booleanValue());
294
                    button.setEnabled(enabled.booleanValue());
(-)a/src/core/org/apache/jmeter/gui/util/MenuFactory.java (-12 / +10 lines)
Lines 152-159 public final class MenuFactory { Link Here
152
        try {
152
        try {
153
            String[] classesToSkip =
153
            String[] classesToSkip =
154
                JOrphanUtils.split(JMeterUtils.getPropDefault("not_in_menu", ""), ","); //$NON-NLS-1$
154
                JOrphanUtils.split(JMeterUtils.getPropDefault("not_in_menu", ""), ","); //$NON-NLS-1$
155
            for (int i = 0; i < classesToSkip.length; i++) {
155
            for (String aClassesToSkip : classesToSkip) {
156
                elementsToSkip.add(classesToSkip[i].trim());
156
                elementsToSkip.add(aClassesToSkip.trim());
157
            }
157
            }
158
158
159
            initializeMenus();
159
            initializeMenus();
Lines 269-276 public final class MenuFactory { Link Here
269
269
270
    public static JMenu makeMenus(String[] categories, String label, String actionCommand) {
270
    public static JMenu makeMenus(String[] categories, String label, String actionCommand) {
271
        JMenu addMenu = new JMenu(label);
271
        JMenu addMenu = new JMenu(label);
272
        for (int i = 0; i < categories.length; i++) {
272
        for (String category : categories) {
273
            addMenu.add(makeMenu(categories[i], actionCommand));
273
            addMenu.add(makeMenu(category, actionCommand));
274
        }
274
        }
275
        GuiUtils.makeScrollableMenu(addMenu);
275
        GuiUtils.makeScrollableMenu(addMenu);
276
        return addMenu;
276
        return addMenu;
Lines 648-657 public final class MenuFactory { Link Here
648
648
649
    // Is any node an instance of one of the classes?
649
    // Is any node an instance of one of the classes?
650
    private static boolean foundClass(JMeterTreeNode nodes[],Class<?> classes[]){
650
    private static boolean foundClass(JMeterTreeNode nodes[],Class<?> classes[]){
651
        for (int i = 0; i < nodes.length; i++) {
651
        for (JMeterTreeNode node : nodes) {
652
            JMeterTreeNode node = nodes[i];
652
            for (Class<?> aClass : classes) {
653
            for (int j=0; j < classes.length; j++) {
653
                if (aClass.isInstance(node.getUserObject())) {
654
                if (classes[j].isInstance(node.getUserObject())){
655
                    return true;
654
                    return true;
656
                }
655
                }
657
            }
656
            }
Lines 661-672 public final class MenuFactory { Link Here
661
660
662
    // Is any node an instance of one of the classes, but not an exception?
661
    // Is any node an instance of one of the classes, but not an exception?
663
    private static boolean foundClass(JMeterTreeNode nodes[],Class<?> classes[], Class<?> except){
662
    private static boolean foundClass(JMeterTreeNode nodes[],Class<?> classes[], Class<?> except){
664
        for (int i = 0; i < nodes.length; i++) {
663
        for (JMeterTreeNode node : nodes) {
665
            JMeterTreeNode node = nodes[i];
666
            Object userObject = node.getUserObject();
664
            Object userObject = node.getUserObject();
667
            if (!except.isInstance(userObject)) {
665
            if (!except.isInstance(userObject)) {
668
                for (int j=0; j < classes.length; j++) {
666
                for (Class<?> aClass : classes) {
669
                    if (classes[j].isInstance(userObject)){
667
                    if (aClass.isInstance(userObject)) {
670
                        return true;
668
                        return true;
671
                    }
669
                    }
672
                }
670
                }
(-)a/src/jorphan/org/apache/jorphan/gui/JLabeledChoice.java (-4 / +4 lines)
Lines 111-118 public class JLabeledChoice extends JPanel implements JLabeledField { Link Here
111
111
112
    public void setValues(String[] items) {
112
    public void setValues(String[] items) {
113
        choiceList.removeAllItems();
113
        choiceList.removeAllItems();
114
        for (int i = 0; i < items.length; i++) {
114
        for (String item : items) {
115
            choiceList.addItem(items[i]);
115
            choiceList.addItem(item);
116
        }
116
        }
117
    }
117
    }
118
118
Lines 277-284 public String getToolTipText() { Link Here
277
     */
277
     */
278
    private void notifyChangeListeners() {
278
    private void notifyChangeListeners() {
279
        ChangeEvent ce = new ChangeEvent(this);
279
        ChangeEvent ce = new ChangeEvent(this);
280
        for (int index = 0; index < mChangeListeners.size(); index++) {
280
        for (ChangeListener mChangeListener : mChangeListeners) {
281
            mChangeListeners.get(index).stateChanged(ce);
281
            mChangeListener.stateChanged(ce);
282
        }
282
        }
283
    }
283
    }
284
284
(-)a/src/jorphan/org/apache/jorphan/gui/JLabeledTextArea.java (-2 / +2 lines)
Lines 243-250 public class JLabeledTextArea extends JPanel implements JLabeledField, FocusList Link Here
243
     */
243
     */
244
    private void notifyChangeListeners() {
244
    private void notifyChangeListeners() {
245
        ChangeEvent ce = new ChangeEvent(this);
245
        ChangeEvent ce = new ChangeEvent(this);
246
        for (int index = 0; index < mChangeListeners.size(); index++) {
246
        for (ChangeListener mChangeListener : mChangeListeners) {
247
            mChangeListeners.get(index).stateChanged(ce);
247
            mChangeListener.stateChanged(ce);
248
        }
248
        }
249
    }
249
    }
250
    
250
    
(-)a/src/jorphan/org/apache/jorphan/gui/JLabeledTextField.java (-2 / +2 lines)
Lines 243-250 public class JLabeledTextField extends JPanel implements JLabeledField, FocusLis Link Here
243
     */
243
     */
244
    protected void notifyChangeListeners() {
244
    protected void notifyChangeListeners() {
245
        ChangeEvent ce = new ChangeEvent(this);
245
        ChangeEvent ce = new ChangeEvent(this);
246
        for (int index = 0; index < mChangeListeners.size(); index++) {
246
        for (ChangeListener mChangeListener : mChangeListeners) {
247
            mChangeListeners.get(index).stateChanged(ce);
247
            mChangeListener.stateChanged(ce);
248
        }
248
        }
249
    }
249
    }
250
}
250
}
(-)a/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java (-10 / +8 lines)
Lines 26-31 import java.lang.reflect.Method; Link Here
26
import java.lang.reflect.Modifier;
26
import java.lang.reflect.Modifier;
27
import java.util.ArrayList;
27
import java.util.ArrayList;
28
import java.util.Arrays;
28
import java.util.Arrays;
29
import java.util.Collections;
29
import java.util.Enumeration;
30
import java.util.Enumeration;
30
import java.util.HashSet;
31
import java.util.HashSet;
31
import java.util.List;
32
import java.util.List;
Lines 168-175 public final class ClassFinder { Link Here
168
    // For each directory in the search path, add all the jars found there
169
    // For each directory in the search path, add all the jars found there
169
    private static String[] addJarsInPath(String[] paths) {
170
    private static String[] addJarsInPath(String[] paths) {
170
        Set<String> fullList = new HashSet<>();
171
        Set<String> fullList = new HashSet<>();
171
        for (int i = 0; i < paths.length; i++) {
172
        for (final String path : paths) {
172
            final String path = paths[i];
173
            fullList.add(path); // Keep the unexpanded path
173
            fullList.add(path); // Keep the unexpanded path
174
            // TODO - allow directories to end with .jar by removing this check?
174
            // TODO - allow directories to end with .jar by removing this check?
175
            if (!path.endsWith(DOT_JAR)) {
175
            if (!path.endsWith(DOT_JAR)) {
Lines 181-189 public final class ClassFinder { Link Here
181
                            return name.endsWith(DOT_JAR);
181
                            return name.endsWith(DOT_JAR);
182
                        }
182
                        }
183
                    });
183
                    });
184
                    for (int x = 0; x < jars.length; x++) {
184
                    Collections.addAll(fullList, jars);
185
                        fullList.add(jars[x]);
186
                    }
187
                }
185
                }
188
            }
186
            }
189
        }
187
        }
Lines 475-482 public final class ClassFinder { Link Here
475
                Class<?> c = Class.forName(strClassName, false, contextClassLoader);
473
                Class<?> c = Class.forName(strClassName, false, contextClassLoader);
476
474
477
                if (!c.isInterface() && !Modifier.isAbstract(c.getModifiers())) {
475
                if (!c.isInterface() && !Modifier.isAbstract(c.getModifiers())) {
478
                    for (int i=0; i< parentClasses.length; i++) {
476
                    for (Class<?> parentClass : parentClasses) {
479
                        if(parentClasses[i].isAssignableFrom(c)){
477
                        if (parentClass.isAssignableFrom(c)) {
480
                            return true;
478
                            return true;
481
                        }
479
                        }
482
                    }
480
                    }
Lines 561-572 public final class ClassFinder { Link Here
561
559
562
    private static void findClassesInPathsDir(String strPathElement, File dir, Set<String> listClasses) throws IOException {
560
    private static void findClassesInPathsDir(String strPathElement, File dir, Set<String> listClasses) throws IOException {
563
        String[] list = dir.list();
561
        String[] list = dir.list();
564
        for (int i = 0; i < list.length; i++) {
562
        for (String aList : list) {
565
            File file = new File(dir, list[i]);
563
            File file = new File(dir, aList);
566
            if (file.isDirectory()) {
564
            if (file.isDirectory()) {
567
                // Recursive call
565
                // Recursive call
568
                findClassesInPathsDir(strPathElement, file, listClasses);
566
                findClassesInPathsDir(strPathElement, file, listClasses);
569
            } else if (list[i].endsWith(DOT_CLASS) && file.exists() && (file.length() != 0)) {
567
            } else if (aList.endsWith(DOT_CLASS) && file.exists() && (file.length() != 0)) {
570
                final String path = file.getPath();
568
                final String path = file.getPath();
571
                listClasses.add(path.substring(strPathElement.length() + 1,
569
                listClasses.add(path.substring(strPathElement.length() + 1,
572
                        path.lastIndexOf('.')) // $NON-NLS-1$
570
                        path.lastIndexOf('.')) // $NON-NLS-1$
(-)a/src/jorphan/org/apache/jorphan/reflect/Functor.java (-2 / +2 lines)
Lines 349-356 public class Functor { Link Here
349
                        }
349
                        }
350
                    }
350
                    }
351
                    Class<?>[] interfaces = p_types[i].getInterfaces();
351
                    Class<?>[] interfaces = p_types[i].getInterfaces();
352
                    for (int j = 0; j < interfaces.length; j++) {
352
                    for (Class<?> anInterface : interfaces) {
353
                        methodToInvoke = doCreateMethod(p_class,getNewArray(i, interfaces[j], p_types));
353
                        methodToInvoke = doCreateMethod(p_class, getNewArray(i, anInterface, p_types));
354
                        if (methodToInvoke != null) {
354
                        if (methodToInvoke != null) {
355
                            return methodToInvoke;
355
                            return methodToInvoke;
356
                        }
356
                        }
(-)a/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java (-3 / +2 lines)
Lines 416-423 public final class JOrphanUtils { Link Here
416
     */
416
     */
417
    public static String baToHexString(byte ba[]) {
417
    public static String baToHexString(byte ba[]) {
418
        StringBuilder sb = new StringBuilder(ba.length*2);
418
        StringBuilder sb = new StringBuilder(ba.length*2);
419
        for (int i = 0; i < ba.length; i++) {
419
        for (byte b : ba) {
420
            int j = ba[i] & 0xff;
420
            int j = b & 0xff;
421
            if (j < 16) {
421
            if (j < 16) {
422
                sb.append("0"); // $NON-NLS-1$ add zero padding
422
                sb.append("0"); // $NON-NLS-1$ add zero padding
423
            }
423
            }
424
- 

Return to bug 57981