Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java	(revision 4072)
@@ -164,4 +164,6 @@
         Node node = (Node)value;
         reset();
+        if (value == null)
+            return this;
         switch(column) {
         case 0:
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java	(revision 4072)
@@ -8,5 +8,4 @@
 
 import javax.swing.BorderFactory;
-import javax.swing.ImageIcon;
 import javax.swing.JLabel;
 import javax.swing.JTable;
@@ -165,4 +164,7 @@
         RelationMember member = (RelationMember)value;
         reset();
+        if (value == null)
+            return this;
+
         renderBackground(getModel(table), member, row, column, isSelected);
         renderForeground(getModel(table), member, row, column, isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeTableCellRenderer.java	(revision 4072)
@@ -26,4 +26,7 @@
 
         reset();
+        if (value == null)
+            return this;
+
         TagMergeItem item = (TagMergeItem)value;
         switch(col) {
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java	(revision 4072)
@@ -44,16 +44,16 @@
         } else{
             switch(decision.getDecisionType()) {
-                case UNDECIDED:
-                    setForeground(UIManager.getColor("Table.foreground"));
-                    setBackground(BGCOLOR_UNDECIDED);
-                    break;
-                case KEEP_NONE:
-                    setForeground(UIManager.getColor("Panel.foreground"));
-                    setBackground(UIManager.getColor("Panel.background"));
-                    break;
-                default:
-                    setForeground(UIManager.getColor("Table.foreground"));
-                    setBackground(UIManager.getColor("Table.background"));
-                    break;
+            case UNDECIDED:
+                setForeground(UIManager.getColor("Table.foreground"));
+                setBackground(BGCOLOR_UNDECIDED);
+                break;
+            case KEEP_NONE:
+                setForeground(UIManager.getColor("Panel.foreground"));
+                setBackground(UIManager.getColor("Panel.background"));
+                break;
+            default:
+                setForeground(UIManager.getColor("Table.foreground"));
+                setBackground(UIManager.getColor("Table.background"));
+                break;
             }
         }
@@ -63,26 +63,26 @@
         model.removeAllElements();
         switch(decision.getDecisionType()) {
-            case UNDECIDED:
-                model.addElement(tr("Choose a value"));
-                setFont(getFont().deriveFont(Font.ITALIC));
-                setToolTipText(tr("Please decide which values to keep"));
-                cbDecisionRenderer.setSelectedIndex(0);
-                break;
-            case KEEP_ONE:
-                model.addElement(decision.getChosenValue());
-                setToolTipText(tr("Value ''{0}'' is going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()));
-                cbDecisionRenderer.setSelectedIndex(0);
-                break;
-            case KEEP_NONE:
-                model.addElement(tr("deleted"));
-                setFont(getFont().deriveFont(Font.ITALIC));
-                setToolTipText(tr("The key ''{0}'' and all its values are going to be removed", decision.getKey()));
-                cbDecisionRenderer.setSelectedIndex(0);
-                break;
-            case KEEP_ALL:
-                model.addElement(decision.getChosenValue());
-                setToolTipText(tr("All values joined as ''{0}'' are going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()));
-                cbDecisionRenderer.setSelectedIndex(0);
-                break;
+        case UNDECIDED:
+            model.addElement(tr("Choose a value"));
+            setFont(getFont().deriveFont(Font.ITALIC));
+            setToolTipText(tr("Please decide which values to keep"));
+            cbDecisionRenderer.setSelectedIndex(0);
+            break;
+        case KEEP_ONE:
+            model.addElement(decision.getChosenValue());
+            setToolTipText(tr("Value ''{0}'' is going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()));
+            cbDecisionRenderer.setSelectedIndex(0);
+            break;
+        case KEEP_NONE:
+            model.addElement(tr("deleted"));
+            setFont(getFont().deriveFont(Font.ITALIC));
+            setToolTipText(tr("The key ''{0}'' and all its values are going to be removed", decision.getKey()));
+            cbDecisionRenderer.setSelectedIndex(0);
+            break;
+        case KEEP_ALL:
+            model.addElement(decision.getChosenValue());
+            setToolTipText(tr("All values joined as ''{0}'' are going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()));
+            cbDecisionRenderer.setSelectedIndex(0);
+            break;
         }
     }
@@ -98,22 +98,25 @@
 
         reset();
+        if (value == null)
+            return this;
+
         MultiValueResolutionDecision decision = (MultiValueResolutionDecision)value;
         renderColors(decision,isSelected);
         switch(column) {
-            case 0:
-                if (decision.isDecided()) {
-                    setIcon(iconDecided);
-                } else {
-                    setIcon(iconUndecided);
-                }
-                return this;
+        case 0:
+            if (decision.isDecided()) {
+                setIcon(iconDecided);
+            } else {
+                setIcon(iconUndecided);
+            }
+            return this;
 
-            case 1:
-                setText(decision.getKey());
-                return this;
+        case 1:
+            setText(decision.getKey());
+            return this;
 
-            case 2:
-                renderValue(decision);
-                return cbDecisionRenderer;
+        case 2:
+            renderValue(decision);
+            return cbDecisionRenderer;
         }
         return this;
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 4072)
@@ -478,4 +478,7 @@
                 boolean hasFocus, int row, int column) {
             reset();
+            if (value == null)
+                return this;
+
             if (row == 0) {
                 setFont(getFont().deriveFont(Font.BOLD));
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionRenderer.java	(revision 4072)
@@ -47,4 +47,7 @@
             int row, int column) {
         resetTableRenderer();
+        if (value == null)
+            return this;
+
         if (isSelected) {
             setBackground(UIManager.getColor("Table.selectionBackground"));
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 4072)
@@ -38,4 +38,5 @@
 import org.openstreetmap.josm.data.osm.event.DataSetListener;
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
+import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent;
 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent;
@@ -44,5 +45,4 @@
 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
-import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -206,5 +206,5 @@
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column) {
             FilterTableModel model = (FilterTableModel)table.getModel();
-            setSelected((Boolean)value);
+            setSelected(value != null && (Boolean)value);
             setEnabled(model.isCellEnabled(row, column));
             setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 4072)
@@ -109,5 +109,5 @@
             @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                 JComponent c = (JComponent)oldRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
-                if (!value.equals(""))
+                if (!"".equals(value))
                     return c;
                 JLabel l = new JLabel(ImageProvider.get("misc","showhide"));
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4072)
@@ -60,6 +60,6 @@
 import org.openstreetmap.josm.gui.io.SaveLayersDialog;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.Layer.LayerAction;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.layer.Layer.LayerAction;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -787,5 +787,5 @@
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
-            boolean active = (Boolean) value;
+            boolean active =  value != null && (Boolean) value;
             cb.setSelected(active);
             cb.setToolTipText(active ? tr("this layer is the active layer") : tr("this layer is not currently active (click to activate)"));
@@ -802,5 +802,7 @@
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
-            cb.updateStatus((Layer)value);
+            if (value != null) {
+                cb.updateStatus((Layer)value);
+            }
             return cb;
         }
@@ -831,4 +833,6 @@
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+            if (value == null)
+                return this;
             Layer layer = (Layer)value;
             JLabel label = (JLabel)super.getTableCellRendererComponent(table,
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 4072)
@@ -21,7 +21,7 @@
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -116,5 +116,5 @@
         });
         cbWireframe.setBorder(new EmptyBorder(new Insets(1,1,1,1)));
-        
+
         tblStyles = new StylesTable(model);
         tblStyles.setSelectionModel(selectionModel= new DefaultListSelectionModel());
@@ -211,5 +211,5 @@
             return data.size();
         }
-        
+
         @Override
         public Object getValueAt(int row, int column) {
@@ -280,4 +280,6 @@
 
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column) {
+            if (value == null)
+                return this;
             boolean b = (Boolean) value;
             setSelected(b);
@@ -290,4 +292,6 @@
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+            if (value == null)
+                return this;
             StyleSource s = (StyleSource) value;
             JLabel label = (JLabel)super.getTableCellRendererComponent(table,
@@ -362,5 +366,5 @@
         }
     }
-    
+
     /**
      * Opens preferences window and selects the mappaint tab.
@@ -426,5 +430,5 @@
         }
     }
-    
+
     protected class SaveAsAction extends AbstractAction {
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 4072)
@@ -120,4 +120,6 @@
             public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                 final JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+                if (value == null)
+                    return this;
                 label.setIcon((ImageIcon)value);
                 label.setText("");
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java	(revision 4072)
@@ -90,4 +90,6 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+        if (value == null)
+            return this;
         reset();
         renderColors(isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java	(revision 4072)
@@ -57,4 +57,6 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+        if (value == null)
+            return this;
         reset();
         renderColors(isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4072)
@@ -563,4 +563,6 @@
                     boolean isSelected, boolean hasFocus, int row, int column) {
                 Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
+                if (value == null)
+                    return this;
                 if (c instanceof JLabel) {
                     String str = null;
@@ -610,4 +612,6 @@
                     boolean isSelected, boolean hasFocus, int row, int column) {
                 Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
+                if (value == null)
+                    return this;
                 if (c instanceof JLabel) {
                     JLabel label = (JLabel)c;
@@ -625,4 +629,6 @@
             @Override public Component getTableCellRendererComponent(JTable table, Object value,
                     boolean isSelected, boolean hasFocus, int row, int column) {
+                if (value == null)
+                    return this;
                 Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
                 boolean isDisabledAndHidden = (((Relation)table.getValueAt(row, 0))).isDisabledAndHidden();
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java	(revision 4072)
@@ -26,5 +26,9 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+
         reset();
+        if (value == null)
+            return this;
+
         this.value = (WayConnectionType) value;
         renderForeground(isSelected);
@@ -44,7 +48,11 @@
         int xloop = 10;
         int xowloop = 0;
-        if(value.isOnewayLoopForwardPart) xowloop = -3;
-        if(value.isOnewayLoopBackwardPart) xowloop = 3;
-        
+        if(value.isOnewayLoopForwardPart) {
+            xowloop = -3;
+        }
+        if(value.isOnewayLoopBackwardPart) {
+            xowloop = 3;
+        }
+
         int xoff = this.getSize().width / 2;
         if (value.isLoop) {
@@ -58,8 +66,9 @@
         if (value.linkPrev) {
             g.setColor(Color.black);
-            if(value.isOnewayHead)
+            if(value.isOnewayHead) {
                 g.fillRect(xoff - 1, 0, 3, 1);
-            else
+            } else {
                 g.fillRect(xoff - 1 + xowloop, 0, 3, 1);
+            }
             y1 = 0;
         } else {
@@ -73,8 +82,9 @@
             else {
                 g.setColor(Color.red);
-                if(value.isOnewayHead)
+                if(value.isOnewayHead) {
                     g.drawRect(xoff-1, p - 3 - w, w, w);
-                else
+                } else {
                     g.drawRect(xoff-1 + xowloop, p - 1 - w, w, w);
+                }
                 y1 = p;
             }
@@ -83,8 +93,9 @@
         if (value.linkNext) {
             g.setColor(Color.black);
-            if(value.isOnewayTail)
+            if(value.isOnewayTail) {
                 g.fillRect(xoff - 1, ymax, 3, 1);
-            else
+            } else {
                 g.fillRect(xoff - 1 + xowloop, ymax, 3, 1);
+            }
             y2 = ymax;
         } else {
@@ -99,8 +110,9 @@
             else {
                 g.setColor(Color.red);
-                if(value.isOnewayTail)
+                if(value.isOnewayTail) {
                     g.drawRect(xoff-1, ymax - p + 3, w, w);
-                else
+                } else {
                     g.drawRect(xoff-1 + xowloop, ymax - p + 1, w, w);
+                }
                 y2 = ymax - p;
             }
@@ -144,7 +156,7 @@
             g.drawLine(xoff, y1, xoff, y2);
         }
-        
+
         g.drawLine(xoff+xowloop, y1, xoff+xowloop, y2);
-      
+
         /* special icons */
         Image arrow = null;
@@ -169,8 +181,9 @@
 
         if (value.isOnewayLoopBackwardPart && value.isOnewayLoopForwardPart) {
-            if(arrow == arrowDown)
+            if(arrow == arrowDown) {
                 arrow = arrowUp;
-            else if (arrow == arrowUp)
+            } else if (arrow == arrowUp) {
                 arrow = arrowDown;
+            }
         }
 
@@ -182,10 +195,10 @@
     private void setDotted(Graphics g) {
         ((Graphics2D)g).setStroke(new BasicStroke(
-              1f,
-              BasicStroke.CAP_BUTT,
-              BasicStroke.CAP_BUTT,
-              5f,
-              new float[] {1f, 2f},
-              0f));
+                1f,
+                BasicStroke.CAP_BUTT,
+                BasicStroke.CAP_BUTT,
+                5f,
+                new float[] {1f, 2f},
+                0f));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRenderer.java	(revision 4072)
@@ -27,4 +27,6 @@
 
         reset();
+        if (value == null)
+            return this;
 
         renderForeground(isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRenderer.java	(revision 4072)
@@ -12,4 +12,6 @@
 
         reset();
+        if (value == null)
+            return this;
 
         renderForeground(isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRenderer.java	(revision 4072)
@@ -68,4 +68,7 @@
 
         reset();
+        if (value == null)
+            return this;
+
         renderBackground((OsmPrimitive)value, isSelected);
         renderPrimitive((OsmPrimitive)value);
Index: /trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java	(revision 4072)
@@ -61,4 +61,7 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+        if (value == null)
+            return this;
+
         HistoryBrowserModel.NodeListTableModel model = getNodeListTableModel(table);
         Long nodeId = (Long)value;
Index: /trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 4072)
@@ -94,4 +94,7 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+        if (value == null)
+            return this;
+
         HistoryBrowserModel.RelationMemberTableModel model = gteRelationMemberTableModel(table);
         RelationMember member = (RelationMember)value;
Index: /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 4072)
@@ -82,4 +82,7 @@
             int row, int column) {
 
+        if (value == null)
+            return this;
+
         String key = (String)value;
         HistoryBrowserModel.TagTableModel model = getTagTableModel(table);
Index: /trunk/src/org/openstreetmap/josm/gui/history/VersionTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/VersionTableCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/history/VersionTableCellRenderer.java	(revision 4072)
@@ -149,4 +149,8 @@
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+
+        if (value == null)
+            return this;
+
         if (getModel(table).isLatest(row)) {
             renderLatest(getModel(table).getLatest(),table, row, isSelected);
Index: /trunk/src/org/openstreetmap/josm/gui/io/SaveLayerInfoCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/SaveLayerInfoCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/io/SaveLayerInfoCellRenderer.java	(revision 4072)
@@ -134,12 +134,15 @@
 
         resetRenderers();
+        if (value == null)
+            return null;
+
         SaveLayerInfo info = (SaveLayerInfo)value;
         switch(column) {
-            case 0: return prepareLayerNameRenderer(info);
-            case 1: return prepareUploadRequiredRenderer(info);
-            case 2: return prepareSaveToFileRequired(info);
-            case 3: return prepareFileNameRenderer(info);
-            case 4: return prepareUploadRenderer(info);
-            case 5: return prepareSaveToFileRenderer(info);
+        case 0: return prepareLayerNameRenderer(info);
+        case 1: return prepareUploadRequiredRenderer(info);
+        case 2: return prepareSaveToFileRequired(info);
+        case 3: return prepareFileNameRenderer(info);
+        case 4: return prepareUploadRenderer(info);
+        case 5: return prepareSaveToFileRenderer(info);
         }
         return null;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 4072)
@@ -13,7 +13,7 @@
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.TreeMap;
 import java.util.Vector;
-import java.util.Map.Entry;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -38,6 +38,6 @@
 import org.openstreetmap.josm.gui.dialogs.ConflictDialog;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.tools.ColorHelper;
 import org.openstreetmap.josm.tools.GBC;
@@ -220,4 +220,6 @@
         colors.setDefaultRenderer(Object.class, new TableCellRenderer(){
             public Component getTableCellRendererComponent(JTable t, Object o, boolean selected, boolean focus, int row, int column) {
+                if (o == null)
+                    return new JLabel();
                 if (column == 1) {
                     JLabel l = new JLabel(ColorHelper.color2html((Color)o));
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 4072)
@@ -84,5 +84,5 @@
 
     final protected boolean isMapPaint;
-    
+
     protected JTable tblActiveSources;
     protected ActiveSourcesModel activeSourcesModel;
@@ -113,4 +113,5 @@
             // some kind of hack to prevent the table from scrolling slightly to the
             // right when clicking on the text
+            @Override
             public void scrollRectToVisible(Rectangle aRect) {
                 super.scrollRectToVisible(new Rectangle(0, aRect.y, aRect.width, aRect.height));
@@ -142,5 +143,5 @@
         });
         activeSourcesModel.setActiveSources(getInitialSourcesList());
-        
+
         final EditActiveSourceAction editActiveSourceAction = new EditActiveSourceAction();
         tblActiveSources.getSelectionModel().addListSelectionListener(editActiveSourceAction);
@@ -368,7 +369,7 @@
      */
     protected enum I18nString { AVAILABLE_SOURCES, ACTIVE_SOURCES, NEW_SOURCE_ENTRY_TOOLTIP, NEW_SOURCE_ENTRY,
-            REMOVE_SOURCE_TOOLTIP, EDIT_SOURCE_TOOLTIP, ACTIVATE_TOOLTIP, RELOAD_ALL_AVAILABLE,
-            LOADING_SOURCES_FROM, FAILED_TO_LOAD_SOURCES_FROM, FAILED_TO_LOAD_SOURCES_FROM_HELP_TOPIC,
-            ILLEGAL_FORMAT_OF_ENTRY }
+        REMOVE_SOURCE_TOOLTIP, EDIT_SOURCE_TOOLTIP, ACTIVATE_TOOLTIP, RELOAD_ALL_AVAILABLE,
+        LOADING_SOURCES_FROM, FAILED_TO_LOAD_SOURCES_FROM, FAILED_TO_LOAD_SOURCES_FROM_HELP_TOPIC,
+        ILLEGAL_FORMAT_OF_ENTRY }
 
     /**
@@ -378,11 +379,11 @@
     private static void adjustColumnWidth(JTable tbl, int col) {
         int maxwidth = 0;
-		for (int row=0; row<tbl.getRowCount(); row++) {
+        for (int row=0; row<tbl.getRowCount(); row++) {
             TableCellRenderer tcr = tbl.getCellRenderer(row, col);
-                Object val = tbl.getValueAt(row, col);
-                Component comp = tcr.getTableCellRendererComponent(tbl, val, false, false, row, col);
-                maxwidth = Math.max(comp.getPreferredSize().width, maxwidth);
-		}
-		tbl.getColumnModel().getColumn(col).setPreferredWidth(maxwidth);
+            Object val = tbl.getValueAt(row, col);
+            Component comp = tcr.getTableCellRendererComponent(tbl, val, false, false, row, col);
+            maxwidth = Math.max(comp.getPreferredSize().width, maxwidth);
+        }
+        tbl.getColumnModel().getColumn(col).setPreferredWidth(maxwidth);
     }
 
@@ -587,10 +588,10 @@
             if (sel.length == 0)
                 return false;
-            if (i < 0) { // Up
+            if (i < 0)
                 return sel[0] >= -i;
-            } else if (i > 0) { // Down
-                return sel[sel.length-1] <= getRowCount()-1 - i;
-            } else
-                return true;
+                else if (i > 0)
+                    return sel[sel.length-1] <= getRowCount()-1 - i;
+                else
+                    return true;
         }
 
@@ -735,4 +736,5 @@
         }
 
+        @Override
         public String getTitle() {
             return tfTitle.getText();
@@ -1211,8 +1213,10 @@
         }
     }
-    
+
     class SourceEntryTableCellRenderer extends DefaultTableCellRenderer {
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+            if (value == null)
+                return this;
             SourceEntry se = (SourceEntry) value;
             JLabel label = (JLabel)super.getTableCellRendererComponent(table,
@@ -1490,7 +1494,6 @@
         public Collection<? extends SourceEntry> readNewFormat() {
             List<SourceEntry> entries = readNewFormatImpl();
-            if (entries == null) {
+            if (entries == null)
                 return getDefault();
-            }
             return entries;
         }
@@ -1500,7 +1503,6 @@
             Collection<Collection<String>> mappaintSrc = Main.pref.getArray(pref, null);
             if (mappaintSrc == null || mappaintSrc.isEmpty()) {
-                if (Main.pref.getBoolean(pref + "._empty_", false)) {
+                if (Main.pref.getBoolean(pref + "._empty_", false))
                     return Collections.<SourceEntry>emptyList();
-                }
                 return null;
             }
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TagCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TagCellRenderer.java	(revision 4071)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TagCellRenderer.java	(revision 4072)
@@ -89,4 +89,6 @@
             boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex) {
         resetRenderer();
+        if (value == null)
+            return this;
 
         // set background color
