Author: pmouawad
Date: Wed Dec 28 21:21:22 2016
New Revision: 1776330

URL: http://svn.apache.org/viewvc?rev=1776330&view=rev
Log:
sonar: fix errors and false-positive
Fix missing Encoding issue by saving in UTF-8

Modified:
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
    jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
    jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1776330&r1=1776329&r2=1776330&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 Wed Dec 28 21:21:22 2016
@@ -25,8 +25,10 @@ import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
 import java.text.DecimalFormat;
 import java.text.Format;
 import java.text.MessageFormat;
@@ -59,8 +61,6 @@ import javax.swing.SwingConstants;
 import javax.swing.UIManager;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 import javax.swing.table.TableCellRenderer;
 
 import org.apache.commons.lang3.ArrayUtils;
@@ -84,7 +84,6 @@ import org.apache.jorphan.gui.RateRender
 import org.apache.jorphan.gui.RendererUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.reflect.Functor;
-import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
 
 /**
@@ -97,17 +96,17 @@ import org.apache.log.Logger;
 public class StatGraphVisualizer extends AbstractVisualizer implements 
Clearable, ActionListener {
     private static final long serialVersionUID = 240L;
 
-    private static final String pct1Label = 
JMeterUtils.getPropDefault("aggregate_rpt_pct1", "90");
-    private static final String pct2Label = 
JMeterUtils.getPropDefault("aggregate_rpt_pct2", "95");
-    private static final String pct3Label = 
JMeterUtils.getPropDefault("aggregate_rpt_pct3", "99");
+    private static final String PCT1_LABEL = 
JMeterUtils.getPropDefault("aggregate_rpt_pct1", "90");
+    private static final String PCT2_LABEL = 
JMeterUtils.getPropDefault("aggregate_rpt_pct2", "95");
+    private static final String PCT3_LABEL = 
JMeterUtils.getPropDefault("aggregate_rpt_pct3", "99");
     
-    private static final Float pct1Value = new 
Float(Float.parseFloat(pct1Label)/100);
-    private static final Float pct2Value =  new 
Float(Float.parseFloat(pct2Label)/100);
-    private static final Float pct3Value =  new 
Float(Float.parseFloat(pct3Label)/100);
+    private static final Float PCT1_VALUE = new 
Float(Float.parseFloat(PCT1_LABEL)/100);
+    private static final Float PCT2_VALUE =  new 
Float(Float.parseFloat(PCT2_LABEL)/100);
+    private static final Float PCT3_VALUE =  new 
Float(Float.parseFloat(PCT3_LABEL)/100);
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    static final String[] COLUMNS = { 
+    private static final String[] COLUMNS = { 
             "sampler_label",                  //$NON-NLS-1$
             "aggregate_report_count",         //$NON-NLS-1$
             "average",                        //$NON-NLS-1$
@@ -128,9 +127,9 @@ public class StatGraphVisualizer extends
             null,
             null,
             null,
-            new Object[]{pct1Label},
-            new Object[]{pct2Label},
-            new Object[]{pct3Label},
+            new Object[]{PCT1_LABEL},
+            new Object[]{PCT2_LABEL},
+            new Object[]{PCT3_LABEL},
             null,
             null,
             null,
@@ -140,7 +139,7 @@ public class StatGraphVisualizer extends
         return result;
     }
 
-    private final String[] GRAPH_COLUMNS = {"average",//$NON-NLS-1$
+    private static final String[] GRAPH_COLUMNS = {"average",//$NON-NLS-1$
             "aggregate_report_median",        //$NON-NLS-1$
             "aggregate_report_xx_pct1_line",      //$NON-NLS-1$
             "aggregate_report_xx_pct2_line",      //$NON-NLS-1$
@@ -148,7 +147,7 @@ public class StatGraphVisualizer extends
             "aggregate_report_min",           //$NON-NLS-1$
             "aggregate_report_max"};          //$NON-NLS-1$
 
-    private final String TOTAL_ROW_LABEL =
+    private static final String TOTAL_ROW_LABEL =
         JMeterUtils.getResString("aggregate_report_total_label");       
//$NON-NLS-1$
 
     private static final Font FONT_DEFAULT = 
UIManager.getDefaults().getFont("TextField.font"); //$NON-NLS-1$
@@ -174,8 +173,6 @@ public class StatGraphVisualizer extends
 
     private JSplitPane spane = null;
 
-    //NOT USED protected double[][] data = null;
-
     private JTabbedPane tabbedGraph = new JTabbedPane(SwingConstants.TOP);
 
     private JButton displayButton =
@@ -273,16 +270,14 @@ public class StatGraphVisualizer extends
 
     private Pattern pattern = null;
 
-    private transient Matcher matcher = null;
-
     public StatGraphVisualizer() {
         super();
         model = createObjectTableModel();
         eltList.add(new BarGraph(JMeterUtils.getResString("average"), true, 
new Color(202, 0, 0)));
         eltList.add(new 
BarGraph(JMeterUtils.getResString("aggregate_report_median"), false, new 
Color(49, 49, 181)));
-        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct1_line"),new
 Object[]{pct1Label}), false, new Color(42, 121, 42)));
-        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct2_line"),new
 Object[]{pct2Label}), false, new Color(242, 226, 8)));
-        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct3_line"),new
 Object[]{pct3Label}), false, new Color(202, 10 , 232)));
+        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct1_line"),new
 Object[]{PCT1_LABEL}), false, new Color(42, 121, 42)));
+        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct2_line"),new
 Object[]{PCT2_LABEL}), false, new Color(242, 226, 8)));
+        eltList.add(new 
BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct3_line"),new
 Object[]{PCT3_LABEL}), false, new Color(202, 10 , 232)));
         eltList.add(new 
BarGraph(JMeterUtils.getResString("aggregate_report_min"), false, 
Color.LIGHT_GRAY));
         eltList.add(new 
BarGraph(JMeterUtils.getResString("aggregate_report_max"), false, 
Color.DARK_GRAY));
         clearData();
@@ -311,11 +306,11 @@ public class StatGraphVisualizer extends
                 new Functor("getMeanAsNumber"),                //$NON-NLS-1$
                 new Functor("getMedian"),                    //$NON-NLS-1$
                 new Functor("getPercentPoint",                //$NON-NLS-1$
-                        new Object[] { pct1Value }),
+                        new Object[] { PCT1_VALUE }),
                 new Functor("getPercentPoint",                //$NON-NLS-1$
-                        new Object[] { pct2Value }),
+                        new Object[] { PCT2_VALUE }),
                 new Functor("getPercentPoint",                //$NON-NLS-1$
-                        new Object[] { pct3Value }),
+                        new Object[] { PCT3_VALUE }),
                 new Functor("getMin"),                        //$NON-NLS-1$
                 new Functor("getMax"),                         //$NON-NLS-1$
                 new Functor("getErrorPercentage"),            //$NON-NLS-1$
@@ -380,13 +375,12 @@ public class StatGraphVisualizer extends
     public void add(final SampleResult res) {
         final String sampleLabel = res.getSampleLabel();
         // Sampler selection
+        Matcher matcher = null;
         if (columnSelection.isSelected() && pattern != null) {
             matcher = pattern.matcher(sampleLabel);
         }
         if ((matcher == null) || (matcher.find())) {
-            JMeterUtils.runSafe(false, new Runnable() {
-                @Override
-                public void run() {
+            JMeterUtils.runSafe(false, () -> {
                     SamplingStatCalculator row = null;
                     synchronized (lock) {
                         row = tableRows.get(sampleLabel);
@@ -398,8 +392,7 @@ public class StatGraphVisualizer extends
                     }
                     row.addSample(res);
                     tableRows.get(TOTAL_ROW_LABEL).addSample(res);
-                    model.fireTableDataChanged();                    
-                }
+                    model.fireTableDataChanged();
             });
         }
     }
@@ -460,17 +453,13 @@ public class StatGraphVisualizer extends
         
tabbedGraph.addTab(JMeterUtils.getResString("aggregate_graph_tab_graph"), 
graphPanel); //$NON-NLS-1$
 
         // If clic on the Graph tab, make the graph (without apply interval or 
filter)
-        ChangeListener changeListener = new ChangeListener() {
-            @Override
-            public void stateChanged(ChangeEvent changeEvent) {
-                JTabbedPane srcTab = (JTabbedPane) changeEvent.getSource();
-                int index = srcTab.getSelectedIndex();
-                if 
(srcTab.getTitleAt(index).equals(JMeterUtils.getResString("aggregate_graph_tab_graph")))
 { //$NON-NLS-1$
-                    actionMakeGraph();
-                }
+        tabbedGraph.addChangeListener(changeEvent -> {
+            JTabbedPane srcTab = (JTabbedPane) changeEvent.getSource();
+            int index = srcTab.getSelectedIndex();
+            if 
(srcTab.getTitleAt(index).equals(JMeterUtils.getResString("aggregate_graph_tab_graph")))
 { //$NON-NLS-1$
+                actionMakeGraph();
             }
-        };
-        tabbedGraph.addChangeListener(changeListener);
+        });
 
         spane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
         spane.setLeftComponent(myScrollPane);
@@ -652,22 +641,19 @@ public class StatGraphVisualizer extends
                         
ActionNames.SAVE_GRAPHICS,SaveGraphics.class.getName()).doAction(
                                 new 
ActionEvent(this,event.getID(),ActionNames.SAVE_GRAPHICS));
             } catch (Exception e) {
-                log.error(e.getMessage());
+                log.error("Error saving to file", e);
             }
         } else if (eventSource == saveTable) {
             JFileChooser chooser = 
FileDialoger.promptToSaveFile("statistics.csv");    //$NON-NLS-1$
             if (chooser == null) {
                 return;
             }
-            FileWriter writer = null;
-            try {
-                writer = new FileWriter(chooser.getSelectedFile()); // TODO 
Charset ?
+            try (FileOutputStream fo = new 
FileOutputStream(chooser.getSelectedFile()); 
+                    OutputStreamWriter writer = new OutputStreamWriter(fo, 
Charset.forName("UTF-8"))){ 
                 CSVSaveService.saveCSVStats(getAllTableData(model, 
getFormatters()),writer,saveHeaders.isSelected() ? getLabels(COLUMNS) : null);
-            } catch (IOException e) {
+            } catch (IOException e) { // NOSONAR Error is reported in GUI
                 JMeterUtils.reportErrorToUser(e.getMessage(), "Error saving 
data");
-            } finally {
-                JOrphanUtils.closeQuietly(writer);
-            }
+            } 
         } else if (eventSource == chooseForeColor) {
             Color color = JColorChooser.showDialog(
                     null,
@@ -709,7 +695,6 @@ public class StatGraphVisualizer extends
                 pattern = createPattern(columnMatchLabel.getText());
             } else if (forceReloadData) {
                 pattern = null;
-                matcher = null;
             }
             if (getFile() != null && getFile().length() > 0) {
                 clearData();
@@ -718,7 +703,7 @@ public class StatGraphVisualizer extends
             }
         } else if (eventSource instanceof JButton) {
             // Changing color for column
-            JButton btn = ((JButton) eventSource);
+            JButton btn = (JButton) eventSource;
             if (btn.getName() != null) {
                 try {
                     BarGraph bar = 
eltList.get(Integer.parseInt(btn.getName()));
@@ -727,7 +712,9 @@ public class StatGraphVisualizer extends
                         bar.setBackColor(color);
                         btn.setBackground(bar.getBackColor());
                     }
-                } catch (NumberFormatException nfe) { } // nothing to do
+                } catch (NumberFormatException nfe) { 
+                    // nothing to do
+                } 
             }
         }
     }
@@ -993,16 +980,16 @@ public class StatGraphVisualizer extends
         if (regexpChkBox.isSelected()) {
             textToFindQ = textToFind;
         }
-        Pattern pattern = null;
+        Pattern result = null;
         try {
             if (caseChkBox.isSelected()) {
-                pattern = Pattern.compile(textToFindQ);
+                result = Pattern.compile(textToFindQ);
             } else {
-                pattern = Pattern.compile(textToFindQ, 
Pattern.CASE_INSENSITIVE);
+                result = Pattern.compile(textToFindQ, 
Pattern.CASE_INSENSITIVE);
             }
         } catch (PatternSyntaxException pse) {
             return null;
         }
-        return pattern;
+        return result;
     }
 }

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?rev=1776330&r1=1776329&r2=1776330&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java 
Wed Dec 28 21:21:22 2016
@@ -22,8 +22,10 @@ import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -208,7 +210,8 @@ public class StatVisualizer extends Abst
             if (chooser == null) {
                 return;
             }
-            try (FileWriter writer = new 
FileWriter(chooser.getSelectedFile());){  // TODO Charset ?
+            try (FileOutputStream fo = new 
FileOutputStream(chooser.getSelectedFile());
+                    OutputStreamWriter writer = new OutputStreamWriter(fo, 
Charset.forName("UTF-8"))){
                 
CSVSaveService.saveCSVStats(StatGraphVisualizer.getAllTableData(model, 
StatGraphVisualizer.getFormatters()),
                         writer,
                         saveHeaders.isSelected() ? 
StatGraphVisualizer.getLabels(StatGraphVisualizer.getColumns()) : null);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java?rev=1776330&r1=1776329&r2=1776330&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java 
Wed Dec 28 21:21:22 2016
@@ -22,8 +22,10 @@ import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
 import java.text.DecimalFormat;
 import java.text.Format;
 import java.util.Map;
@@ -54,7 +56,6 @@ import org.apache.jorphan.gui.ObjectTabl
 import org.apache.jorphan.gui.RateRenderer;
 import org.apache.jorphan.gui.RendererUtils;
 import org.apache.jorphan.reflect.Functor;
-import org.apache.jorphan.util.JOrphanUtils;
 
 /**
  * Simpler (lower memory) version of Aggregate Report (StatVisualizer).
@@ -274,16 +275,13 @@ public class SummaryReport extends Abstr
             if (chooser == null) {
                 return;
             }
-            FileWriter writer = null;
-            try {
-                writer = new FileWriter(chooser.getSelectedFile());
+            try (FileOutputStream fo = new 
FileOutputStream(chooser.getSelectedFile());
+                    OutputStreamWriter writer = new OutputStreamWriter(fo, 
Charset.forName("UTF-8"))) {
                 
CSVSaveService.saveCSVStats(StatGraphVisualizer.getAllTableData(model, 
FORMATS),writer, 
                         saveHeaders.isSelected() ? 
StatGraphVisualizer.getLabels(COLUMNS) : null);
             } catch (IOException e) {
                 JMeterUtils.reportErrorToUser(e.getMessage(), "Error saving 
data");
-            } finally {
-                JOrphanUtils.closeQuietly(writer);
-            }
+            } 
         }
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java?rev=1776330&r1=1776329&r2=1776330&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java Wed Dec 28 
21:21:22 2016
@@ -25,6 +25,7 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.io.Writer;
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -678,11 +679,11 @@ public final class CSVSaveService {
      * @param data
      *            List of data rows
      * @param writer
-     *            output file
+     *            output writer
      * @throws IOException
      *             when writing to <code>writer</code> fails
      */
-    public static void saveCSVStats(List<?> data, FileWriter writer)
+    public static void saveCSVStats(List<?> data, Writer writer)
             throws IOException {
         saveCSVStats(data, writer, null);
     }
@@ -702,7 +703,7 @@ public final class CSVSaveService {
      * @throws IOException
      *             when writing to <code>writer</code> fails
      */
-    public static void saveCSVStats(List<?> data, FileWriter writer,
+    public static void saveCSVStats(List<?> data, Writer writer,
             String[] headers) throws IOException {
         final char DELIM = ',';
         final char[] SPECIALS = new char[] { DELIM, QUOTING_CHAR };


Reply via email to