Refine search
private static String message(IOException exception) { if (exception instanceof GoogleJsonResponseException) { GoogleJsonError details = ((GoogleJsonResponseException) exception).getDetails(); if (details != null) { return details.getMessage(); } } return exception.getMessage(); } }
public static Bucket createInProject(Storage storage, String project, Bucket bucket) throws IOException { try { Storage.Buckets.Insert insertBucket = storage.buckets().insert(project, bucket); return insertBucket.execute(); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails(); if (error != null && error.getCode() == HTTP_CONFLICT && error.getMessage().contains("You already own this bucket.")) { System.out.println("already exists"); return bucket; } System.err.println(error.getMessage()); throw e; } }
throw exception; GoogleJsonError error = new GoogleJsonError(); error.setCode(code); error.setMessage(message); throw translate(error);
private static ExceptionData makeExceptionData( GoogleJsonError googleJsonError, boolean idempotent, Set<BaseServiceException.Error> retryableErrors) { int code = googleJsonError.getCode(); String reason = reason(googleJsonError); ExceptionData.Builder exceptionData = ExceptionData.newBuilder(); exceptionData .setMessage(googleJsonError.getMessage()) .setCause(null) .setRetryable(BaseServiceException.isRetryable(code, reason, idempotent, retryableErrors)) .setCode(code) .setReason(reason); if (reason != null) { GoogleJsonError.ErrorInfo errorInfo = googleJsonError.getErrors().get(0); exceptionData.setLocation(errorInfo.getLocation()); exceptionData.setDebugInfo((String) errorInfo.get("debugInfo")); } else { exceptionData.setLocation(null); exceptionData.setDebugInfo(null); } return exceptionData.build(); }
if (exception instanceof HttpResponseException) { if (exception instanceof GoogleJsonResponseException) { GoogleJsonError jsonError = ((GoogleJsonResponseException) exception).getDetails(); if (jsonError != null) { BaseServiceException.Error error = new BaseServiceException.Error(jsonError.getCode(), reason(jsonError)); code = error.getCode(); reason = error.getReason(); retryable = error.isRetryable(idempotent, retryableErrors); if (reason != null) { GoogleJsonError.ErrorInfo errorInfo = jsonError.getErrors().get(0); location = errorInfo.getLocation(); debugInfo = (String) errorInfo.get("debugInfo"); code = ((GoogleJsonResponseException) exception).getStatusCode(); retryable = BaseServiceException.isRetryable(code, null, idempotent, retryableErrors);
@Override public boolean delete(Path path, boolean recursive) throws IOException { Preconditions.checkArgument(recursive, "Non-recursive is not supported."); String fileId = toFileId(path); LOG.debug("Deleting file: " + fileId); try { client.files().delete(fileId).execute(); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails(); if (404 == error.getCode()) { //Non-existing file id return false; } throw e; } return true; }
/** * Static builder to construct a {@code GoogleApiException} from a {@link * GoogleJsonResponseException} * * @param exception a GoogleJsonResponseException that was thrown by a Google API call */ public static GoogleApiException from(GoogleJsonResponseException exception) { String message = exception.getDetails() != null ? exception.getDetails().getMessage() : exception.getMessage(); return new GoogleApiException(message, exception, exception.getStatusCode()); }
public List<SimpleResult> getResults(String query, int numresults) { List<SimpleResult> urls = new ArrayList<>(); search.setQ(query); search.setMaxResults((long) numresults); SearchListResponse searchResponse; try { searchResponse = search.execute(); List<SearchResult> searchResultList = searchResponse.getItems(); searchResultList.forEach((sr) -> urls.add(new SimpleResult(sr.getId().getVideoId(), sr.getSnippet().getTitle()))); } catch (GoogleJsonResponseException e) { if (e.getMessage().contains("quotaExceeded") || e.getMessage().contains("keyInvalid")) { if (setupNextKey()) { return getResults(query, numresults); } } else { Launcher.logToDiscord(e, "youtube-search-error", "<--", "code", e.getDetails().getCode(), "message", e.getDetails().getMessage()); } } catch (IOException ex) { DiscordBot.LOGGER.error("YTSearch failure: " + ex.toString()); return null; } return urls; }
private static String resolveJsonResponseToMessage(GoogleJsonResponseException reason) { switch (reason.getStatusCode()) { case 403: return StackdriverDebuggerBundle.message("clouddebug.debug.targets.accessdenied"); default: return StackdriverDebuggerBundle.getString( "clouddebug.debug.targets.error", reason.getDetails().getMessage()); } }
List<ErrorInfo> errors = e.getDetails().getErrors(); for (ErrorInfo error : errors) { if (error.getReason().equals("noAdSenseAccount")) {
@Override public BackgroundException map(final IOException failure) { final StringBuilder buffer = new StringBuilder(); if(failure instanceof GoogleJsonResponseException) { final GoogleJsonResponseException error = (GoogleJsonResponseException) failure; this.append(buffer, error.getDetails().getMessage()); switch(error.getDetails().getCode()) { case HttpStatus.SC_FORBIDDEN: final List<GoogleJsonError.ErrorInfo> errors = error.getDetails().getErrors(); for(GoogleJsonError.ErrorInfo info : errors) { if("usageLimits".equals(info.getDomain())) { return new RetriableAccessDeniedException(buffer.toString(), Duration.ofSeconds(5), failure); } } break; } } if(failure instanceof HttpResponseException) { final HttpResponseException response = (HttpResponseException) failure; this.append(buffer, response.getStatusMessage()); return new HttpResponseExceptionMappingService().map(new org.apache.http.client .HttpResponseException(response.getStatusCode(), buffer.toString())); } return super.map(failure); } }
@Override public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) { System.out.println("Error Message: " + e.getMessage()); } });
private static AppEdit createEdit(App app, Edits edits) { try { // Create a new edit to make changes. AppEdit edit = edits.insert(app.getApplicationId(), null).execute(); log(String.format("Created edit with id: %s", edit.getId())); return edit; } catch (GoogleJsonResponseException ex) { throw new RuntimeException(ex.getDetails() != null ? ex.getDetails().getMessage() : ex.getMessage(), ex); } catch (IOException ex) { throw new RuntimeException(ex); } }
defaultInstanceTemplate(type.toString())).execute(); } catch (GoogleJsonResponseException e) { if (e.getStatusCode() != ALREADY_EXISTS) { throw e; return; } catch (GoogleJsonResponseException e1) { if (e1.getStatusCode() == ALREADY_EXISTS) { log.info("Instance Group already exists for " + type + ", using existing template."); return; if (!e1.getDetails().getErrors().get(0).getReason().equals("resourceNotReady")) { throw e1;
/** * Determines if the given GoogleJsonError indicates 'item not found'. */ public boolean itemNotFound(GoogleJsonError e) { return e.getCode() == HttpStatusCodes.STATUS_CODE_NOT_FOUND; }
private GoogleJsonError getGoogleJsonError(Exception e) { if (e instanceof GoogleJsonResponseException) { return ((GoogleJsonResponseException) e).getDetails(); } boolean retryableException = (e instanceof SSLHandshakeException || e instanceof SocketTimeoutException); if (retryableException) { logger.log(Level.WARNING, "Retrying request failed with exception:", e); } // Using retryable 504 Gateway Timeout error code. int errorCode = retryableException ? 504 : 0; GoogleJsonError error = new GoogleJsonError(); error.setMessage(e.getMessage()); error.setCode(errorCode); return error; } }
/** * Wrapper on {@link JsonBatchCallback#onFailure} to record failure while executing batched * request. */ @Override public void onFailure(GoogleJsonError error, HttpHeaders responseHeaders) { if (event != null) { event.failure(); event = null; } else { operationStats.event(request.requestToExecute.getClass().getName()).failure(); } logger.log(Level.WARNING, "Request failed with error {0}", error); if (request.retryPolicy.isRetryableStatusCode(error.getCode())) { if (request.getRetries() < request.retryPolicy.getMaxRetryLimit()) { request.setStatus(Status.RETRYING); request.incrementRetries(); return; } } GoogleJsonResponseException exception = new GoogleJsonResponseException( new Builder(error.getCode(), error.getMessage(), responseHeaders), error); fail(exception); }
@Override public void onFailure(final GoogleJsonError e, final HttpHeaders responseHeaders) { log.warn(String.format("Failure deleting %s. %s", file, e.getMessage())); failures.add(new HttpResponseExceptionMappingService().map( new HttpResponseException(e.getCode(), e.getMessage()))); }
/** A helper that generates the error JSON payload that Google APIs produce. */ private static GoogleJsonErrorContainer errorWithReasonAndStatus(String reason, int status) { ErrorInfo info = new ErrorInfo(); info.setReason(reason); info.setDomain("global"); // GoogleJsonError contains one or more ErrorInfo objects; our utiities read the first one. GoogleJsonError error = new GoogleJsonError(); error.setErrors(ImmutableList.of(info)); error.setCode(status); error.setMessage(reason); // The actual JSON response is an error container. GoogleJsonErrorContainer container = new GoogleJsonErrorContainer(); container.setError(error); return container; }
@Test public void testGetZoneNotFound() { EasyMock.reset(batchMock); Capture<RpcBatch.Callback<ManagedZone>> callback = Capture.newInstance(); Capture<Map<DnsRpc.Option, Object>> capturedOptions = Capture.newInstance(); batchMock.addGetZone( EasyMock.eq(ZONE_NAME), EasyMock.capture(callback), EasyMock.capture(capturedOptions)); EasyMock.replay(batchMock); DnsBatchResult<Zone> batchResult = dnsBatch.getZone(ZONE_NAME); assertEquals(0, capturedOptions.getValue().size()); GoogleJsonError error = new GoogleJsonError(); error.setCode(404); RpcBatch.Callback<ManagedZone> capturedCallback = callback.getValue(); capturedCallback.onFailure(error); assertNull(batchResult.get()); }