1414import java .util .Collection ;
1515import java .util .LinkedHashMap ;
1616import java .util .Map ;
17- import java .util .TreeMap ;
1817import java .util .concurrent .Callable ;
1918import java .util .concurrent .CompletableFuture ;
2019import java .util .concurrent .ExecutorService ;
@@ -77,7 +76,7 @@ private HttpRequest buildHttpPostRequest(
7776 if (request .getHeaders () != null && !request .getHeaders ().isEmpty ()) {
7877 headers .putAll (request .getHeaders ());
7978 }
80- if (request .getHeaderUserAgent () != null && !request .getHeaderUserAgent ().trim (). isEmpty ()) {
79+ if (request .getHeaderUserAgent () != null && !request .getHeaderUserAgent ().isBlank ()) {
8180 headerUserAgent = request .getHeaderUserAgent ();
8281 }
8382 queries .add (queryCreator .createQuery (request , null ));
@@ -131,9 +130,7 @@ private HttpRequest buildHttpGetRequest(@NonNull MatomoRequest request) {
131130 HttpRequest .newBuilder ()
132131 .uri (
133132 apiEndpoint .resolve (
134- String .format (
135- "%s?%s" ,
136- apiEndpoint .getPath (), queryCreator .createQuery (request , authToken ))));
133+ apiEndpoint .getPath () + "?" + queryCreator .createQuery (request , authToken )));
137134 applyTrackerConfiguration (builder );
138135 setUserAgentHeader (builder , request .getHeaderUserAgent (), request .getHeaders ());
139136 addHeaders (builder , request .getHeaders ());
@@ -142,9 +139,11 @@ private HttpRequest buildHttpGetRequest(@NonNull MatomoRequest request) {
142139
143140 private <T > T send (@ NonNull HttpRequest httpRequest , @ NonNull Callable <T > callable ) {
144141 try {
145- log .debug ("Sending request to Matomo: {}" , httpRequest );
146- log .debug ("Headers: {}" , httpRequest .headers ());
147- log .debug ("Cookies: {}" , cookieStore .getCookies ());
142+ if (log .isDebugEnabled ()) {
143+ log .debug ("Sending request to Matomo: {}" , httpRequest );
144+ log .debug ("Headers: {}" , httpRequest .headers ());
145+ log .debug ("Cookies: {}" , cookieStore .getCookies ());
146+ }
148147 return callable .call ();
149148 } catch (Exception e ) {
150149 if (trackerConfiguration .isLogFailedTracking ()) {
@@ -188,15 +187,18 @@ private void setUserAgentHeader(
188187 HttpRequest .Builder builder ,
189188 @ Nullable String headerUserAgent ,
190189 @ Nullable Map <String , String > headers ) {
191- String userAgentHeader = null ;
192- if ((headerUserAgent == null || headerUserAgent .trim ().isEmpty ()) && headers != null ) {
193- TreeMap <String , String > caseInsensitiveMap = new TreeMap <>(String .CASE_INSENSITIVE_ORDER );
194- caseInsensitiveMap .putAll (headers );
195- userAgentHeader = caseInsensitiveMap .get ("User-Agent" );
190+ boolean noExplicitUserAgent = headerUserAgent == null || headerUserAgent .isBlank ();
191+ if (!noExplicitUserAgent ) {
192+ return ;
193+ }
194+ if (headers != null ) {
195+ for (Map .Entry <String , String > entry : headers .entrySet ()) {
196+ if ("User-Agent" .equalsIgnoreCase (entry .getKey ()) && entry .getValue () != null && !entry .getValue ().isBlank ()) {
197+ return ;
198+ }
199+ }
196200 }
197- if ((userAgentHeader == null || userAgentHeader .trim ().isEmpty ())
198- && (headerUserAgent == null || headerUserAgent .trim ().isEmpty ())
199- && trackerConfiguration .getUserAgent () != null
201+ if (trackerConfiguration .getUserAgent () != null
200202 && !trackerConfiguration .getUserAgent ().isEmpty ()) {
201203 builder .header ("User-Agent" , trackerConfiguration .getUserAgent ());
202204 }
0 commit comments