Skip to content

Commit 870a216

Browse files
adoroszlaiaajisaka
andauthored
HADOOP-17317. [JDK 11] Upgrade dnsjava to remove illegal access warnings (#2442) (#6981)
(cherry picked from commit 4c35466) Co-authored-by: Akira Ajisaka <[email protected]>
1 parent c34cfd3 commit 870a216

File tree

5 files changed

+93
-114
lines changed

5 files changed

+93
-114
lines changed

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -623,11 +623,8 @@ protected static class QualifiedHostResolver implements HostResolver {
623623
private List<String> searchDomains = new ArrayList<>();
624624
{
625625
ResolverConfig resolverConfig = ResolverConfig.getCurrentConfig();
626-
Name[] names = resolverConfig.searchPath();
627-
if (names != null) {
628-
for (Name name : names) {
629-
searchDomains.add(name.toString());
630-
}
626+
for (Name name : resolverConfig.searchPath()) {
627+
searchDomains.add(name.toString());
631628
}
632629
}
633630

hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java

Lines changed: 29 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
import java.net.Socket;
7676
import java.net.SocketAddress;
7777
import java.net.SocketException;
78-
import java.net.UnknownHostException;
7978
import java.nio.BufferUnderflowException;
8079
import java.nio.ByteBuffer;
8180
import java.nio.channels.DatagramChannel;
@@ -87,8 +86,10 @@
8786
import java.security.spec.InvalidKeySpecException;
8887
import java.security.spec.RSAPrivateKeySpec;
8988
import java.text.SimpleDateFormat;
89+
import java.time.Duration;
90+
import java.time.Instant;
91+
import java.time.temporal.ChronoUnit;
9092
import java.util.ArrayList;
91-
import java.util.Calendar;
9293
import java.util.Collection;
9394
import java.util.Date;
9495
import java.util.Enumeration;
@@ -232,13 +233,7 @@ private void updateDNSServer(Configuration conf) {
232233
} catch (SocketException e) {
233234
}
234235
ResolverConfig.refresh();
235-
ExtendedResolver resolver;
236-
try {
237-
resolver = new ExtendedResolver();
238-
} catch (UnknownHostException e) {
239-
LOG.error("Can not resolve DNS servers: ", e);
240-
return;
241-
}
236+
ExtendedResolver resolver = new ExtendedResolver();
242237
for (Resolver check : resolver.getResolvers()) {
243238
if (check instanceof SimpleResolver) {
244239
InetAddress address = ((SimpleResolver) check).getAddress()
@@ -247,7 +242,7 @@ private void updateDNSServer(Configuration conf) {
247242
resolver.deleteResolver(check);
248243
continue;
249244
} else {
250-
check.setTimeout(30);
245+
check.setTimeout(Duration.ofSeconds(30));
251246
}
252247
} else {
253248
LOG.error("Not simple resolver!!!?" + check);
@@ -260,12 +255,10 @@ private void updateDNSServer(Configuration conf) {
260255
}
261256
StringBuilder message = new StringBuilder();
262257
message.append("DNS servers: ");
263-
if (ResolverConfig.getCurrentConfig().servers() != null) {
264-
for (String server : ResolverConfig.getCurrentConfig()
265-
.servers()) {
266-
message.append(server);
267-
message.append(" ");
268-
}
258+
for (InetSocketAddress address :
259+
ResolverConfig.getCurrentConfig().servers()) {
260+
message.append(address);
261+
message.append(" ");
269262
}
270263
LOG.info(message.toString());
271264
}
@@ -331,11 +324,10 @@ private void signZones() throws IOException {
331324
if (isDNSSECEnabled()) {
332325
Collection<Zone> zoneCollection = zones.values();
333326
for (Zone zone : zoneCollection) {
334-
Iterator itor = zone.iterator();
327+
Iterator<RRset> itor = zone.iterator();
335328
while (itor.hasNext()) {
336-
RRset rRset = (RRset) itor.next();
337-
Iterator sigs = rRset.sigs();
338-
if (!sigs.hasNext()) {
329+
RRset rRset = itor.next();
330+
if (!rRset.sigs().isEmpty()) {
339331
try {
340332
signSiteRecord(zone, rRset.first());
341333
} catch (DNSSEC.DNSSECException e) {
@@ -692,10 +684,8 @@ private void signSiteRecord(Zone zone, Record record)
692684
throws DNSSEC.DNSSECException {
693685
RRset rrset = zone.findExactMatch(record.getName(),
694686
record.getType());
695-
Calendar cal = Calendar.getInstance();
696-
Date inception = cal.getTime();
697-
cal.add(Calendar.YEAR, 1);
698-
Date expiration = cal.getTime();
687+
Instant inception = Instant.now();
688+
Instant expiration = inception.plus(365, ChronoUnit.DAYS);
699689
RRSIGRecord rrsigRecord =
700690
DNSSEC.sign(rrset, dnsKeyRecs.get(zone.getOrigin()),
701691
privateKey, inception, expiration);
@@ -1159,7 +1149,7 @@ private byte remoteLookup(Message response, Name name, int type,
11591149
}
11601150
}
11611151
if (r.getType() == Type.CNAME) {
1162-
Name cname = ((CNAMERecord) r).getAlias();
1152+
Name cname = r.getName();
11631153
if (iterations < 6) {
11641154
remoteLookup(response, cname, type, iterations + 1);
11651155
}
@@ -1255,9 +1245,7 @@ private int getMaxLength(Socket s, OPTRecord queryOPT) {
12551245
* @param flags the flags.
12561246
*/
12571247
private void addAdditional2(Message response, int section, int flags) {
1258-
Record[] records = response.getSectionArray(section);
1259-
for (int i = 0; i < records.length; i++) {
1260-
Record r = records[i];
1248+
for (Record r : response.getSection(section)) {
12611249
Name glueName = r.getAdditionalName();
12621250
if (glueName != null) {
12631251
addGlue(response, glueName, flags);
@@ -1403,11 +1391,10 @@ byte addAnswer(Message response, Name name, int type, int dclass,
14031391
response.getHeader().setFlag(Flags.AA);
14041392
}
14051393
} else if (sr.isSuccessful()) {
1406-
RRset[] rrsets = sr.answers();
1394+
List<RRset> rrsets = sr.answers();
14071395
LOG.info("found answers {}", rrsets);
1408-
for (int i = 0; i < rrsets.length; i++) {
1409-
addRRset(name, response, rrsets[i],
1410-
Section.ANSWER, flags);
1396+
for (RRset rrset : rrsets) {
1397+
addRRset(name, response, rrset, Section.ANSWER, flags);
14111398
}
14121399
addNS(response, zone, flags);
14131400
if (iterations == 0) {
@@ -1456,7 +1443,7 @@ private void addSOA(Message response, Zone zone, int flags) {
14561443
private void addNXT(Message response, int flags)
14571444
throws DNSSEC.DNSSECException, IOException {
14581445
Record nxtRecord = getNXTRecord(
1459-
response.getSectionArray(Section.QUESTION)[0]);
1446+
response.getSection(Section.QUESTION).get(0));
14601447
Zone zone = findBestZone(nxtRecord.getName());
14611448
addRecordCommand.exec(zone, nxtRecord);
14621449
RRset nxtRR = zone.findExactMatch(nxtRecord.getName(), Type.NXT);
@@ -1515,19 +1502,15 @@ private void addRRset(Name name, Message response, RRset rrset, int section,
15151502
}
15161503
}
15171504
if ((flags & FLAG_SIGONLY) == 0) {
1518-
Iterator it = rrset.rrs();
1519-
while (it.hasNext()) {
1520-
Record r = (Record) it.next();
1505+
for (Record r : rrset.rrs()) {
15211506
if (r.getName().isWild() && !name.isWild()) {
15221507
r = r.withName(name);
15231508
}
15241509
response.addRecord(r, section);
15251510
}
15261511
}
15271512
if ((flags & (FLAG_SIGONLY | FLAG_DNSSECOK)) != 0) {
1528-
Iterator it = rrset.sigs();
1529-
while (it.hasNext()) {
1530-
Record r = (Record) it.next();
1513+
for (Record r : rrset.sigs()) {
15311514
if (r.getName().isWild() && !name.isWild()) {
15321515
r = r.withName(name);
15331516
}
@@ -1554,21 +1537,21 @@ byte[] doAXFR(Name name, Message query, TSIG tsig, TSIGRecord qtsig,
15541537
if (zone == null) {
15551538
return errorMessage(query, Rcode.REFUSED);
15561539
}
1557-
Iterator it = zone.AXFR();
1540+
Iterator<RRset> it = zone.AXFR();
15581541
try {
15591542
DataOutputStream dataOut;
15601543
dataOut = new DataOutputStream(s.getOutputStream());
15611544
int id = query.getHeader().getID();
15621545
while (it.hasNext()) {
1563-
RRset rrset = (RRset) it.next();
1546+
RRset rrset = it.next();
15641547
Message response = new Message(id);
15651548
Header header = response.getHeader();
15661549
header.setFlag(Flags.QR);
15671550
header.setFlag(Flags.AA);
15681551
addRRset(rrset.getName(), response, rrset,
15691552
Section.ANSWER, FLAG_DNSSECOK);
15701553
if (tsig != null) {
1571-
tsig.applyStream(response, qtsig, first);
1554+
tsig.apply(response, qtsig, first);
15721555
qtsig = response.getTSIG();
15731556
}
15741557
first = false;
@@ -1688,10 +1671,8 @@ public void exec(Zone zone, Record record) throws IOException {
16881671
zone.addRecord(record);
16891672
LOG.info("Registered {}", record);
16901673
if (isDNSSECEnabled()) {
1691-
Calendar cal = Calendar.getInstance();
1692-
Date inception = cal.getTime();
1693-
cal.add(Calendar.YEAR, 1);
1694-
Date expiration = cal.getTime();
1674+
Instant inception = Instant.now();
1675+
Instant expiration = inception.plus(365, ChronoUnit.DAYS);
16951676
RRset rRset =
16961677
zone.findExactMatch(record.getName(), record.getType());
16971678
try {
@@ -1727,8 +1708,8 @@ public void exec(Zone zone, Record record) throws IOException {
17271708
*/
17281709
private void addDSRecord(Zone zone,
17291710
Name name, int dClass, long dsTtl,
1730-
Date inception,
1731-
Date expiration) throws DNSSEC.DNSSECException {
1711+
Instant inception,
1712+
Instant expiration) throws DNSSEC.DNSSECException {
17321713
RRset rRset;
17331714
RRSIGRecord rrsigRecord;
17341715

hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/dns/SecureableZone.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,7 @@ public Record getNXTRecord(Record queryRecord, Zone zone) {
138138
SetResponse sr = zone.findRecords(base.getName(), Type.ANY);
139139
BitSet bitMap = new BitSet();
140140
bitMap.set(Type.NXT);
141-
RRset[] rRsets = sr.answers();
142-
for (RRset rRset : rRsets) {
141+
for (RRset rRset : sr.answers()) {
143142
int typeCode = rRset.getType();
144143
if (typeCode > 0 && typeCode < 128) {
145144
bitMap.set(typeCode);

0 commit comments

Comments
 (0)