Bug 98332 [JFace] DialogSettings does not handle null cases, replaces tabs with spaces
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
attributes.put(TAG_VALUE, string == null ? "" : string);         
            out.printTag(TAG_ITEM, attributes, true);
        }
        attributes.clear();
        for (Iterator i = arrayItems.keySet().iterator(); i.hasNext();) {
            String key = (String) i.next();
            attributes.put(TAG_KEY, key == null ? "" : key); 
            out.startTag(TAG_LIST, attributes);
            String[] value = (String[]) arrayItems.get(key);
            attributes.clear();
            if (value != null) {
                for (int index = 0; index < value.length; index++) {
                    String string = value[index];
                    attributes.put(TAG_VALUE, string == null ? "" : string); 
                    out.printTag(TAG_ITEM, attributes, true);
                }
            }
            out.endTag(TAG_LIST);
        }
        for (Iterator i = sections.values().iterator(); i.hasNext();) {
            ((DialogSettings) i.next()).save(out);
        }
        out.endTag(TAG_SECTION);
    }
    
    /**
     * A simple XML writer.  Using this instead of the javax.xml.transform classes allows
     * compilation against JCL Foundation (bug 80059). 
     */
    private static class XMLWriter extends PrintWriter {