@@ -3068,17 +3068,20 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
30683068
30693069 if (currentVmOffering != null ) {
30703070 List <String > tags = StringUtils .csvTagsToList (currentVmOffering .getTags ());
3071- SearchBuilder <ServiceOfferingJoinVO > sb = _srvOfferingJoinDao .createSearchBuilder ();
3072- for (String tag : tags ) {
3073- sb .and (tag , sb .entity ().getTags (), Op .FIND_IN_SET );
3074- }
3075- sb .done ();
3071+ tags .addAll (StringUtils .csvTagsToList (currentVmOffering .getHostTag ()));
3072+ if (!tags .isEmpty ()) {
3073+ SearchBuilder <ServiceOfferingJoinVO > sb = _srvOfferingJoinDao .createSearchBuilder ();
3074+ for (int i = 0 ; i < tags .size (); i ++) {
3075+ sb .and (Integer .toString (i ), sb .entity ().getTags (), Op .FIND_IN_SET );
3076+ }
3077+ sb .done ();
30763078
3077- SearchCriteria <ServiceOfferingJoinVO > scc = sb .create ();
3078- for (String tag : tags ) {
3079- scc .setParameters (tag , tag );
3079+ SearchCriteria <ServiceOfferingJoinVO > scc = sb .create ();
3080+ for (int i = 0 ; i < tags .size (); i ++) {
3081+ scc .setParameters (Integer .toString (i ), tags .get (i ));
3082+ }
3083+ sc .addAnd ("tags" , SearchCriteria .Op .SC , scc );
30803084 }
3081- sc .addAnd ("tags" , SearchCriteria .Op .SC , scc );
30823085 }
30833086
30843087 return _srvOfferingJoinDao .searchAndCount (sc , searchFilter );
0 commit comments