119 super.close();
120 } finally {
121 closed = true;
122 }
123 }
124 }
125
126 /**
127 * Sanity test that properties saved with Properties#storeToXML can be
128 * read with Properties#loadFromXML.
129 */
130 static void testLoadAndStore(String encoding, boolean appendBOM) throws IOException {
131 System.out.println("testLoadAndStore, encoding=" + encoding);
132
133 Properties props = new Properties();
134 props.put("k0", "\u6C34");
135 props.put("k1", "foo");
136 props.put("k2", "bar");
137 props.put("k3", "\u0020\u0391\u0392\u0393\u0394\u0395\u0396\u0397");
138 props.put("k4", "\u7532\u9aa8\u6587");
139 props.put("k5", "<java.home>/lib/jaxp.properties");
140
141 TestOutputStream out = new TestOutputStream();
142 props.storeToXML(out, null, encoding);
143 if (!out.isOpen())
144 throw new RuntimeException("OutputStream closed by storeToXML");
145
146 Properties p = new Properties();
147 TestInputStream in;
148 if (appendBOM) {
149 byte[] byteOrderMark = bomChar.getBytes(Charset.forName(encoding));
150 byte[] outArray = out.toByteArray();
151 byte[] inputArray = new byte[byteOrderMark.length + outArray.length];
152 System.arraycopy(byteOrderMark, 0, inputArray, 0, byteOrderMark.length);
153 System.arraycopy(outArray, 0, inputArray, byteOrderMark.length, outArray.length);
154 in = new TestInputStream(inputArray);
155 } else {
156 in = new TestInputStream(out.toByteArray());
157 }
158 p.loadFromXML(in);
159 if (in.isOpen())
|
119 super.close();
120 } finally {
121 closed = true;
122 }
123 }
124 }
125
126 /**
127 * Sanity test that properties saved with Properties#storeToXML can be
128 * read with Properties#loadFromXML.
129 */
130 static void testLoadAndStore(String encoding, boolean appendBOM) throws IOException {
131 System.out.println("testLoadAndStore, encoding=" + encoding);
132
133 Properties props = new Properties();
134 props.put("k0", "\u6C34");
135 props.put("k1", "foo");
136 props.put("k2", "bar");
137 props.put("k3", "\u0020\u0391\u0392\u0393\u0394\u0395\u0396\u0397");
138 props.put("k4", "\u7532\u9aa8\u6587");
139 props.put("k5", "<java.home>/conf/jaxp.properties");
140
141 TestOutputStream out = new TestOutputStream();
142 props.storeToXML(out, null, encoding);
143 if (!out.isOpen())
144 throw new RuntimeException("OutputStream closed by storeToXML");
145
146 Properties p = new Properties();
147 TestInputStream in;
148 if (appendBOM) {
149 byte[] byteOrderMark = bomChar.getBytes(Charset.forName(encoding));
150 byte[] outArray = out.toByteArray();
151 byte[] inputArray = new byte[byteOrderMark.length + outArray.length];
152 System.arraycopy(byteOrderMark, 0, inputArray, 0, byteOrderMark.length);
153 System.arraycopy(outArray, 0, inputArray, byteOrderMark.length, outArray.length);
154 in = new TestInputStream(inputArray);
155 } else {
156 in = new TestInputStream(out.toByteArray());
157 }
158 p.loadFromXML(in);
159 if (in.isOpen())
|