Update string comparisons to be case insensitive or explicitly use the English locale where needed in Chainsaw and extras companion
Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/11e4448b Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/11e4448b Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/11e4448b Branch: refs/heads/master Commit: 11e4448b2de0f9c1012ccdab82dcf9dc958aaf4d Parents: 7329254 Author: Scott Deboy <[email protected]> Authored: Wed Aug 17 08:18:24 2011 +0000 Committer: Scott Deboy <[email protected]> Committed: Wed Aug 17 08:18:24 2011 +0000 ---------------------------------------------------------------------- .../chainsaw/ApplicationPreferenceModelPanel.java | 5 +++-- .../log4j/chainsaw/ChainsawCyclicBufferTableModel.java | 7 ++++--- .../java/org/apache/log4j/chainsaw/FileSaveAction.java | 3 ++- .../log4j/chainsaw/LogFilePatternLayoutBuilder.java | 13 +++++++------ src/main/java/org/apache/log4j/chainsaw/LogPanel.java | 5 +++-- src/main/java/org/apache/log4j/chainsaw/LogUI.java | 9 +++++---- .../log4j/chainsaw/ReceiverConfigurationPanel.java | 3 ++- .../apache/log4j/chainsaw/TableColorizingRenderer.java | 2 +- .../org/apache/log4j/chainsaw/helper/SwingHelper.java | 3 ++- .../chainsaw/receivers/PluginPropertyEditorPanel.java | 2 +- 10 files changed, 30 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java index b96d052..7dd5d56 100644 --- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java +++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java @@ -30,6 +30,7 @@ import java.util.Dictionary; import java.util.Enumeration; import java.util.Hashtable; +import java.util.Locale; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; @@ -187,7 +188,7 @@ public static void main(String[] args) { boolean useNewLookAndFeels = false; int j = 0; for (int i=0;i<lookAndFeels.length;i++) { - if (lookAndFeels[i].getClassName().toLowerCase().contains("nimbus")) { + if (lookAndFeels[i].getClassName().toLowerCase(Locale.ENGLISH).contains("nimbus")) { useNewLookAndFeels = true; } else { newLookAndFeels[j++] = lookAndFeels[i]; @@ -549,7 +550,7 @@ public static void main(String[] args) { defaultPath = currentConfigurationPath.getPath(); //FileDialog will not navigate to this location unless we remove the prefixing protocol and slash //at least on winxp - if (defaultPath.toLowerCase().startsWith("file:\\")) { + if (defaultPath.toLowerCase(Locale.ENGLISH).startsWith("file:\\")) { defaultPath = defaultPath.substring("file:\\".length()); } } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java index 719094f..4871e39 100644 --- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java +++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java @@ -27,6 +27,7 @@ import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -601,11 +602,11 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel //case may not match..try case sensitive and fall back to case-insensitive String result = event.getProperty(columnNames.get(columnIndex).toString()); if (result == null) { - String lowerColName = columnNames.get(columnIndex).toString().toLowerCase(); + String lowerColName = columnNames.get(columnIndex).toString().toLowerCase(Locale.ENGLISH); Set entrySet = event.getProperties().entrySet(); for (Iterator iter = entrySet.iterator();iter.hasNext();) { Map.Entry thisEntry = (Map.Entry) iter.next(); - if (thisEntry.getKey().toString().toLowerCase().equals(lowerColName)) { + if (thisEntry.getKey().toString().equalsIgnoreCase(lowerColName)) { result = thisEntry.getValue().toString(); } } @@ -785,7 +786,7 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel * @see javax.swing.table.TableModel#isCellEditable(int, int) */ public boolean isCellEditable(int rowIndex, int columnIndex) { - if (getColumnName(columnIndex).toLowerCase().equals(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) { + if (getColumnName(columnIndex).equalsIgnoreCase(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) { return true; } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java b/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java index 9fe7a55..fc7feb3 100644 --- a/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java +++ b/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java @@ -30,6 +30,7 @@ import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -103,7 +104,7 @@ class FileSaveAction extends AbstractAction { XMLLayout layout = new XMLLayout(); layout.setProperties(true); - boolean saveAsZip = selectedFile.getName().toLowerCase().endsWith(".zip"); + boolean saveAsZip = selectedFile.getName().toLowerCase(Locale.ENGLISH).endsWith(".zip"); Writer writer = null; try { if (saveAsZip) { http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java index cd5a016..0112818 100644 --- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java +++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java @@ -25,6 +25,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Properties; @@ -191,7 +192,7 @@ public class LogFilePatternLayoutBuilder Map.Entry appenderEntry = (Map.Entry)iter.next(); String appenderName = appenderEntry.getKey().toString(); String appenderClassName = appenderEntry.getValue().toString(); - if (appenderClassName.toLowerCase().endsWith("fileappender")) { + if (appenderClassName.toLowerCase(Locale.ENGLISH).endsWith("fileappender")) { String layout = props.getProperty(appenderPrefix + "." + appenderName + ".layout"); if (layout != null && layout.trim().equals("org.apache.log4j.PatternLayout")) { String conversion = props.getProperty(appenderPrefix + "." + appenderName + ".layout.ConversionPattern"); @@ -247,7 +248,7 @@ public class LogFilePatternLayoutBuilder if (appenderAttributes.getNamedItem("name") != null && appenderClass != null && appenderClass.getNodeValue() != null) { //all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded, //try to parse the nodes as well - if (appenderClass.getNodeValue().toLowerCase().endsWith("fileappender")) { + if (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith("fileappender")) { String appenderName = appenderAttributes.getNamedItem("name").getNodeValue(); //subclass of FileAppender - add it Map entry = new HashMap(); @@ -256,23 +257,23 @@ public class LogFilePatternLayoutBuilder Node appenderChild = appenderChildren.item(j); if (appenderChild.getNodeName().equals("param") && appenderChild.hasAttributes()) { Node fileNameNode = appenderChild.getAttributes().getNamedItem("name"); - if (fileNameNode != null && fileNameNode.getNodeValue().toLowerCase().equals("file")) { + if (fileNameNode != null && fileNameNode.getNodeValue().equalsIgnoreCase("file")) { Node fileValueNode = appenderChild.getAttributes().getNamedItem("value"); if (fileValueNode != null) { entry.put("file", fileValueNode.getNodeValue()); } } } - if (appenderChild.getNodeName().toLowerCase().equals("layout") && appenderChild.hasAttributes()) { + if (appenderChild.getNodeName().equalsIgnoreCase("layout") && appenderChild.hasAttributes()) { NamedNodeMap layoutAttributes = appenderChild.getAttributes(); Node layoutNode = layoutAttributes.getNamedItem("class"); - if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equals("org.apache.log4j.PatternLayout")) { + if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equalsIgnoreCase("org.apache.log4j.PatternLayout")) { NodeList layoutChildren = appenderChild.getChildNodes(); for (int k = 0; k < layoutChildren.getLength(); k++) { Node layoutChild = layoutChildren.item(k); if (layoutChild.getNodeName().equals("param") && layoutChild.hasAttributes()) { Node layoutName = layoutChild.getAttributes().getNamedItem("name"); - if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().toLowerCase().equals("conversionpattern")) { + if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().equalsIgnoreCase("conversionpattern")) { Node conversionValue = layoutChild.getAttributes().getNamedItem("value"); if (conversionValue != null) { entry.put("conversion", conversionValue.getNodeValue()); http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java index 4173b21..aef99d7 100644 --- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java +++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java @@ -67,6 +67,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; @@ -532,7 +533,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi } for (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) { TableColumn c = (TableColumn)iter.next(); - if (c.getHeaderValue().toString().toLowerCase().equals(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) + if (c.getHeaderValue().toString().equalsIgnoreCase(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) { c.setCellEditor(markerCellEditor); } @@ -4321,7 +4322,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi List entriesCopy = new ArrayList(allEntries); for (Iterator iter = entriesCopy.iterator();iter.hasNext();) { String thisEntry = iter.next().toString(); - if (thisEntry.toLowerCase().contains(textToMatch.toLowerCase())) { + if (thisEntry.toLowerCase(Locale.ENGLISH).contains(textToMatch.toLowerCase())) { model.addElement(thisEntry); } } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/LogUI.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java index c62efe0..e99760e 100644 --- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java +++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java @@ -52,6 +52,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -290,12 +291,12 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener { String lookAndFeelClassName = model.getLookAndFeelClassName(); if (lookAndFeelClassName == null || lookAndFeelClassName.trim().equals("")) { String osName = System.getProperty("os.name"); - if (osName.toLowerCase().startsWith("mac")) { + if (osName.toLowerCase(Locale.ENGLISH).startsWith("mac")) { //no need to assign look and feel - } else if (osName.toLowerCase().startsWith("windows")) { + } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("windows")) { lookAndFeelClassName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; model.setLookAndFeelClassName(lookAndFeelClassName); - } else if (osName.toLowerCase().startsWith("linux")) { + } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) { lookAndFeelClassName = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; model.setLookAndFeelClassName(lookAndFeelClassName); } @@ -1453,7 +1454,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener { for (Iterator iter = plugins.iterator();iter.hasNext();) { Plugin plugin = (Plugin)iter.next(); //don't stop ZeroConfPlugin if it is registered - if (!plugin.getName().toLowerCase().contains("zeroconf")) { + if (!plugin.getName().toLowerCase(Locale.ENGLISH).contains("zeroconf")) { pluginRegistry.stopPlugin(plugin.getName()); } } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java index c755963..e99fca4 100644 --- a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java +++ b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java @@ -34,6 +34,7 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.List; +import java.util.Locale; import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; @@ -809,7 +810,7 @@ class ReceiverConfigurationPanel extends JPanel { boolean isPatternLayoutLogFormat() { Object item = logFileFormatTypeComboBox.getSelectedItem(); - return item != null && item.toString().toLowerCase().contains("patternlayout"); + return item != null && item.toString().toLowerCase(Locale.ENGLISH).contains("patternlayout"); } String getLogFormatTimestampFormat() { http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java index bd3a921..cb6f15b 100644 --- a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java +++ b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java @@ -400,7 +400,7 @@ public class TableColorizingRenderer extends DefaultTableCellRenderer { //find the property in the property set...case-sensitive for (Iterator iter = propertySet.iterator();iter.hasNext();) { String entry = iter.next().toString(); - if (entry.toLowerCase().equals(headerName)) { + if (entry.equalsIgnoreCase(headerName)) { thisProp = entry; break; } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java b/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java index 239a8bc..3eab190 100644 --- a/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java +++ b/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java @@ -30,6 +30,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.InputMap; @@ -92,7 +93,7 @@ public final class SwingHelper { } public static boolean isMacOSX() { - return System.getProperty("os.name").toLowerCase().startsWith("mac os x"); + return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).startsWith("mac os x"); } public static List orderOKCancelButtons(JButton okButton, JButton cancelButton) { http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/11e4448b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java index c543216..23d76db 100644 --- a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java +++ b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java @@ -349,7 +349,7 @@ public class PluginPropertyEditorPanel extends JPanel { if (columnIndex == 1) { //ensure name is set - if (descriptors[rowIndex].getName().toLowerCase().equals("name") && (aValue == null || aValue.toString().trim().equals(""))) { + if (descriptors[rowIndex].getName().equalsIgnoreCase("name") && (aValue == null || aValue.toString().trim().equals(""))) { logger.error("Name required"); return; }
