Skip to content

Commit 0ba580e

Browse files
committed
HADOOP-10541. InputStream in MiniKdc#initKDCServer for minikdc.ldiff is not closed. Contributed by Swarnim Kulkarni.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1592803 13f79535-47bb-0310-9956-ffa450edef68
1 parent 7fe28fc commit 0ba580e

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

hadoop-common-project/hadoop-common/CHANGES.txt

+3
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,9 @@ Release 2.5.0 - UNRELEASED
443443

444444
HADOOP-10568. Add s3 server-side encryption. (David S. Wang via atm)
445445

446+
HADOOP-10541. InputStream in MiniKdc#initKDCServer for minikdc.ldiff is not
447+
closed. (Swarnim Kulkarni via cnauroth)
448+
446449
Release 2.4.1 - UNRELEASED
447450

448451
INCOMPATIBLE CHANGES

hadoop-common-project/hadoop-minikdc/src/main/java/org/apache/hadoop/minikdc/MiniKdc.java

+25-12
Original file line numberDiff line numberDiff line change
@@ -393,18 +393,22 @@ private void initKDCServer() throws Exception {
393393
map.put("4", bindAddress);
394394

395395
ClassLoader cl = Thread.currentThread().getContextClassLoader();
396-
InputStream is = cl.getResourceAsStream("minikdc.ldiff");
396+
InputStream is1 = cl.getResourceAsStream("minikdc.ldiff");
397397

398398
SchemaManager schemaManager = ds.getSchemaManager();
399-
final String content = StrSubstitutor.replace(IOUtils.toString(is), map);
400-
LdifReader reader = new LdifReader(new StringReader(content));
399+
LdifReader reader = null;
400+
401401
try {
402+
final String content = StrSubstitutor.replace(IOUtils.toString(is1), map);
403+
reader = new LdifReader(new StringReader(content));
404+
402405
for (LdifEntry ldifEntry : reader) {
403406
ds.getAdminSession().add(new DefaultEntry(schemaManager,
404407
ldifEntry.getEntry()));
405408
}
406409
} finally {
407-
reader.close();
410+
IOUtils.closeQuietly(reader);
411+
IOUtils.closeQuietly(is1);
408412
}
409413

410414
kdc = new KdcServer();
@@ -429,14 +433,23 @@ private void initKDCServer() throws Exception {
429433
kdc.start();
430434

431435
StringBuilder sb = new StringBuilder();
432-
is = cl.getResourceAsStream("minikdc-krb5.conf");
433-
BufferedReader r = new BufferedReader(new InputStreamReader(is));
434-
String line = r.readLine();
435-
while (line != null) {
436-
sb.append(line).append("{3}");
437-
line = r.readLine();
436+
InputStream is2 = cl.getResourceAsStream("minikdc-krb5.conf");
437+
438+
BufferedReader r = null;
439+
440+
try {
441+
r = new BufferedReader(new InputStreamReader(is2));
442+
String line = r.readLine();
443+
444+
while (line != null) {
445+
sb.append(line).append("{3}");
446+
line = r.readLine();
447+
}
448+
} finally {
449+
IOUtils.closeQuietly(r);
450+
IOUtils.closeQuietly(is2);
438451
}
439-
r.close();
452+
440453
krb5conf = new File(workDir, "krb5.conf").getAbsoluteFile();
441454
FileUtils.writeStringToFile(krb5conf,
442455
MessageFormat.format(sb.toString(), getRealm(), getHost(),
@@ -555,4 +568,4 @@ public void createPrincipal(File keytabFile, String ... principals)
555568
keytab.setEntries(entries);
556569
keytab.write(keytabFile);
557570
}
558-
}
571+
}

0 commit comments

Comments
 (0)