@@ -256,6 +256,7 @@ private void getMainDownloadUrls(SDKUrlHolder urlHolder,
256
256
XPath xpath = xPathfactory .newXPath ();
257
257
XPathExpression expr ;
258
258
NodeList remotePackages ;
259
+ boolean found ;
259
260
260
261
// -----------------------------------------------------------------------
261
262
// platform
@@ -301,6 +302,7 @@ private void getMainDownloadUrls(SDKUrlHolder urlHolder,
301
302
// build-tools
302
303
expr = xpath .compile ("//remotePackage[starts-with(@path, \" build-tools;\" )]" );
303
304
remotePackages = (NodeList ) expr .evaluate (doc , XPathConstants .NODESET );
305
+ found = false ;
304
306
if (remotePackages != null ) {
305
307
for (int buildTool =0 ; buildTool < remotePackages .getLength (); buildTool ++) {
306
308
NodeList childNodes = remotePackages .item (buildTool ).getChildNodes ();
@@ -331,19 +333,22 @@ private void getMainDownloadUrls(SDKUrlHolder urlHolder,
331
333
urlHolder .buildToolsFilename = url .item (0 ).getTextContent ();
332
334
urlHolder .buildToolsUrl = REPOSITORY_URL + urlHolder .buildToolsFilename ;
333
335
urlHolder .totalSize += Integer .parseInt (size .item (0 ).getTextContent ());
336
+ found = true ;
334
337
break ;
335
338
}
336
339
}
337
- break ;
340
+ if ( found ) break ;
338
341
}
339
- } else {
342
+ }
343
+ if (!found ) {
340
344
throw new IOException ("Cannot find the build-tools" );
341
345
}
342
346
343
347
// -----------------------------------------------------------------------
344
348
// tools
345
349
expr = xpath .compile ("//remotePackage[@path=\" tools\" ]" ); //Matches two items according to xml file
346
350
remotePackages = (NodeList ) expr .evaluate (doc , XPathConstants .NODESET );
351
+ found = false ;
347
352
if (remotePackages != null ) {
348
353
NodeList childNodes = remotePackages .item (1 ).getChildNodes (); //Second item is the latest tools for now
349
354
NodeList archives = ((Element ) childNodes ).getElementsByTagName ("archive" );
@@ -360,21 +365,24 @@ private void getMainDownloadUrls(SDKUrlHolder urlHolder,
360
365
urlHolder .toolsFilename = url .item (0 ).getTextContent ();
361
366
urlHolder .toolsUrl = REPOSITORY_URL + urlHolder .toolsFilename ;
362
367
urlHolder .totalSize += Integer .parseInt (size .item (0 ).getTextContent ());
368
+ found = true ;
363
369
break ;
364
370
}
365
371
}
366
- } else {
372
+ }
373
+ if (!found ) {
367
374
throw new IOException ("Cannot find the tools" );
368
375
}
369
376
370
377
// -----------------------------------------------------------------------
371
378
// emulator
372
379
expr = xpath .compile ("//remotePackage[@path=\" emulator\" ]" ); //Matches two items according to xml file
373
380
remotePackages = (NodeList ) expr .evaluate (doc , XPathConstants .NODESET );
381
+ found = false ;
374
382
if (remotePackages != null ) {
375
383
for (int i = 0 ; i < remotePackages .getLength (); ++i ) {
376
384
NodeList childNodes = remotePackages .item (i ).getChildNodes ();
377
-
385
+
378
386
NodeList channel = ((Element ) childNodes ).getElementsByTagName ("channelRef" );
379
387
if (!channel .item (0 ).getAttributes ().item (0 ).getNodeValue ().equals ("channel-0" ))
380
388
continue ; //Stable channel only, skip others
@@ -388,17 +396,19 @@ private void getMainDownloadUrls(SDKUrlHolder urlHolder,
388
396
NodeList os = ((Element ) archive ).getElementsByTagName ("host-os" );
389
397
NodeList url = ((Element ) complete .item (0 )).getElementsByTagName ("url" );
390
398
NodeList size = ((Element ) complete .item (0 )).getElementsByTagName ("size" );
391
-
399
+
392
400
if (os .item (0 ).getTextContent ().equals (requiredHostOs )) {
393
401
urlHolder .emulatorFilename = url .item (0 ).getTextContent ();
394
402
urlHolder .emulatorUrl = REPOSITORY_URL + urlHolder .emulatorFilename ;
395
403
urlHolder .totalSize += Integer .parseInt (size .item (0 ).getTextContent ());
404
+ found = true ;
396
405
break ;
397
406
}
398
407
}
399
- break ;
408
+ if ( found ) break ;
400
409
}
401
- } else {
410
+ }
411
+ if (!found ) {
402
412
throw new IOException ("Cannot find the emulator" );
403
413
}
404
414
}
0 commit comments