@@ -329,11 +329,11 @@ public void load() {
329
329
try {
330
330
urls = classLoader .getResources (fullFileName );
331
331
} catch (IOException e ) {
332
- fail ("Error locating SPI configuration file, filename=" + fullFileName + ", classloader=" + classLoader , e );
332
+ fail ("Error locating SPI configuration file,filename=" + fullFileName + ",classloader=" + classLoader , e );
333
333
}
334
334
335
335
if (urls == null || !urls .hasMoreElements ()) {
336
- RecordLog .warn ("No SPI configuration file, filename=" + fullFileName + ", classloader=" + classLoader );
336
+ RecordLog .warn ("No SPI configuration file,filename=" + fullFileName + ",classloader=" + classLoader );
337
337
return ;
338
338
}
339
339
@@ -371,8 +371,13 @@ public void load() {
371
371
fail ("class " + line + " not found" , e );
372
372
}
373
373
374
+ if (classMap .containsValue (clazz )) {
375
+ RecordLog .warn ("duplicate class found,className=" + clazz .getName () + ",SPI configuration file[" + url + "]" );
376
+ continue ;
377
+ }
378
+
374
379
if (!service .isAssignableFrom (clazz )) {
375
- fail ("class " + clazz .getName () + "is not subtype of " + service .getName () + ",SPI configuration file= " + fullFileName );
380
+ fail ("class " + clazz .getName () + "is not subtype of " + service .getName () + ",SPI configuration file[ " + url + "]" );
376
381
}
377
382
378
383
classList .add (clazz );
@@ -381,13 +386,13 @@ public void load() {
381
386
if (classMap .containsKey (aliasName )) {
382
387
Class <? extends S > existClass = classMap .get (aliasName );
383
388
fail ("Found repeat alias name for " + clazz .getName () + " and "
384
- + existClass .getName () + ",SPI configuration file= " + fullFileName );
389
+ + existClass .getName () + ",SPI configuration file[ " + url + "]" );
385
390
}
386
391
classMap .put (aliasName , clazz );
387
392
388
393
if (spi != null && spi .isDefault ()) {
389
394
if (defaultClass != null ) {
390
- fail ("Found more than one default Provider, SPI configuration file= " + fullFileName );
395
+ fail ("Found more than one default Provider,className=" + clazz . getName () + ", SPI configuration file[ " + url + "]" );
391
396
}
392
397
defaultClass = clazz ;
393
398
}
@@ -400,7 +405,7 @@ public void load() {
400
405
, spi == null ? 0 : spi .order ());
401
406
}
402
407
} catch (IOException e ) {
403
- fail ("error reading SPI configuration file" , e );
408
+ fail ("error reading SPI configuration file[" + url + "] " , e );
404
409
} finally {
405
410
closeResources (in , br );
406
411
}
0 commit comments