@@ -295,11 +295,11 @@ protected void calculatePath(List<RouterOperation> routerOperationList) {
295295 LOGGER .error (e .getMessage ());
296296 }
297297 if (handlerMethod != null && isPackageToScan (handlerMethod .getBeanType ().getPackage ()) && isPathToMatch (routerOperation .getPath ()))
298- calculatePath (handlerMethod , routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethod ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
298+ calculatePath (handlerMethod , routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethods ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
299299 }
300300 }
301301 else if (StringUtils .isNotBlank (routerOperation .getOperation ().operationId ()) && isPathToMatch (routerOperation .getPath ())) {
302- calculatePath (routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethod ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
302+ calculatePath (routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethods ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
303303 }
304304 }
305305 }
@@ -506,30 +506,30 @@ protected void mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<o
506506 .collect (Collectors .toList ());
507507 if (routerFunctionDataList .size () == 1 )
508508 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
509- else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getMethod ())) {
509+ else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getMethods ())) {
510510 // PATH + METHOD
511511 routerFunctionDataList = routerFunctionDatas .stream ()
512512 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
513- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] ))
513+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () ))
514514 .collect (Collectors .toList ());
515515 if (routerFunctionDataList .size () == 1 )
516516 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
517517 else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getProduces ())) {
518518 // PATH + METHOD + PRODUCES
519519 routerFunctionDataList = routerFunctionDatas .stream ()
520520 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
521- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
522- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
521+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
522+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
523523 .collect (Collectors .toList ());
524524 if (routerFunctionDataList .size () == 1 )
525525 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
526526 else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getConsumes ())) {
527527 // PATH + METHOD + PRODUCES + CONSUMES
528528 routerFunctionDataList = routerFunctionDatas .stream ()
529529 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
530- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
531- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] )
532- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
530+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
531+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ())
532+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
533533 .collect (Collectors .toList ());
534534 if (routerFunctionDataList .size () == 1 )
535535 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -539,8 +539,8 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
539539 // PATH + METHOD + CONSUMES
540540 routerFunctionDataList = routerFunctionDatas .stream ()
541541 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
542- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
543- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
542+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
543+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
544544 .collect (Collectors .toList ());
545545 if (routerFunctionDataList .size () == 1 )
546546 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -550,17 +550,17 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
550550 // PATH + PRODUCES
551551 routerFunctionDataList = routerFunctionDatas .stream ()
552552 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
553- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
553+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
554554 .collect (Collectors .toList ());
555555 if (routerFunctionDataList .size () == 1 )
556556 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
557557 else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getConsumes ())) {
558558 // PATH + PRODUCES + CONSUMES
559559 routerFunctionDataList = routerFunctionDatas .stream ()
560560 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
561- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
562- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] )
563- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
561+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
562+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ())
563+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
564564 .collect (Collectors .toList ());
565565 if (routerFunctionDataList .size () == 1 )
566566 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -570,7 +570,7 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
570570 // PATH + CONSUMES
571571 routerFunctionDataList = routerFunctionDatas .stream ()
572572 .filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
573- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
573+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
574574 .collect (Collectors .toList ());
575575 if (routerFunctionDataList .size () == 1 )
576576 fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -579,15 +579,27 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
579579 }
580580 }
581581
582+ private boolean isEqualArrays (String [] array1 , String [] array2 ) {
583+ Arrays .sort (array1 );
584+ Arrays .sort (array2 );
585+ return Arrays .equals (array1 ,array2 );
586+ }
587+
588+ private boolean isEqualMethods (RequestMethod [] requestMethods1 , RequestMethod [] requestMethods2 ) {
589+ Arrays .sort (requestMethods1 );
590+ Arrays .sort (requestMethods2 );
591+ return Arrays .equals (requestMethods1 ,requestMethods2 );
592+ }
593+
582594 private void fillRouterOperation (RouterFunctionData routerFunctionData , org .springdoc .core .models .RouterOperation routerOperation ) {
583595 if (ArrayUtils .isEmpty (routerOperation .getConsumes ()))
584596 routerOperation .setConsumes (routerFunctionData .getConsumes ());
585597 if (ArrayUtils .isEmpty (routerOperation .getProduces ()))
586598 routerOperation .setProduces (routerFunctionData .getProduces ());
587599 if (ArrayUtils .isEmpty (routerOperation .getHeaders ()))
588600 routerOperation .setHeaders (routerFunctionData .getHeaders ());
589- if (ArrayUtils .isEmpty (routerOperation .getMethod ()))
590- routerOperation .setMethod (routerFunctionData .getMethods ());
601+ if (ArrayUtils .isEmpty (routerOperation .getMethods ()))
602+ routerOperation .setMethods (routerFunctionData .getMethods ());
591603 }
592604
593605}
0 commit comments