@@ -32,7 +32,6 @@ public abstract class APICall {
3232 private static double MaxRequestRate = 20.0 / (1000.0 * 60.0 ); // 20 requests/minute
3333 private static long startTime = new Date ().getTime ();
3434 protected static long requestCount = 0 ;
35- private static final Logger logger = Logger .getLogger (APICall .class .getName ());
3635
3736 // Instance Variables
3837 private Resty api ;
@@ -73,11 +72,13 @@ public final boolean setAndRefresh(String newEndpoint) {
7372 public boolean refresh () {
7473 try {
7574 honorRateLimit ();
76- if (endpoint != null ) setState (api .json (endpoint ).object ());
77- requestCount ++;
75+ if (endpoint != null ) {
76+ requestCount ++; // Count it even if it fails
77+ setState (api .json (endpoint ).object ());
78+ }
7879 return true ;
7980 } catch (IOException | JSONException ex ) {
80- Tesla .logger .log (Level .FINEST , null , ex );
81+ Tesla .logger .log (Level .FINEST , "Failed refreshing. HANDLED." , ex );
8182 theState = new JSONObject ();
8283 hasValidData = false ;
8384 return false ;
@@ -134,12 +135,12 @@ protected void honorRateLimit() {
134135 double rate = ((double ) requestCount ) / elapsedMillis ;
135136 if (rate > MaxRequestRate ) {
136137 try {
137- logger .log (
138+ Tesla . logger .log (
138139 Level .INFO , "Throttling request rate. Requests: {0}, Millis: {1}\n " ,
139140 new Object []{requestCount , elapsedMillis });
140- Thread .sleep ( ( long ) ((( double ) requestCount )/ MaxRequestRate + startTime - now ) );
141+ Thread .sleep (5 * 1000 ); // Arbitrary amount of wait time
141142 } catch (InterruptedException ex ) {
142- logger .log (Level .SEVERE , null , ex );
143+ Tesla . logger .log (Level .SEVERE , null , ex );
143144 }
144145 } else return ;
145146 }
0 commit comments