Search in sources :

Example 11 with NoHttpResponseException

use of org.apache.http.NoHttpResponseException in project jib by google.

the class RegistryClient method callRegistryEndpoint.

/**
 * Calls the registry endpoint with an override URL.
 *
 * @param url the endpoint URL to call, or {@code null} to use default from {@code
 *     registryEndpointProvider}
 * @param registryEndpointProvider the {@link RegistryEndpointProvider} to the endpoint
 */
@Nullable
private <T> T callRegistryEndpoint(@Nullable URL url, RegistryEndpointProvider<T> registryEndpointProvider) throws IOException, RegistryException {
    if (url == null) {
        url = registryEndpointProvider.getApiRoute(getApiRouteBase());
    }
    try (Connection connection = new Connection(url)) {
        Request request = Request.builder().setAuthorization(authorization).setUserAgent(getUserAgent()).setAccept(registryEndpointProvider.getAccept()).setBody(registryEndpointProvider.getContent()).build();
        Response response = connection.send(registryEndpointProvider.getHttpMethod(), request);
        return registryEndpointProvider.handleResponse(response);
    } catch (HttpResponseException ex) {
        // First, see if the endpoint provider handles an exception as an expected response.
        try {
            return registryEndpointProvider.handleHttpResponseException(ex);
        } catch (HttpResponseException httpResponseException) {
            if (httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_BAD_REQUEST || httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_NOT_FOUND || httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_METHOD_NOT_ALLOWED) {
                // The name or reference was invalid.
                ErrorResponseTemplate errorResponse = JsonTemplateMapper.readJson(httpResponseException.getContent(), ErrorResponseTemplate.class);
                RegistryErrorExceptionBuilder registryErrorExceptionBuilder = new RegistryErrorExceptionBuilder(registryEndpointProvider.getActionDescription(), httpResponseException);
                for (ErrorEntryTemplate errorEntry : errorResponse.getErrors()) {
                    registryErrorExceptionBuilder.addReason(errorEntry);
                }
                throw registryErrorExceptionBuilder.build();
            } else if (httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_UNAUTHORIZED || httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_FORBIDDEN) {
                throw new RegistryUnauthorizedException(registryEndpointProperties.getServerUrl(), registryEndpointProperties.getImageName(), httpResponseException);
            } else if (httpResponseException.getStatusCode() == HttpStatusCodes.STATUS_CODE_TEMPORARY_REDIRECT) {
                return callRegistryEndpoint(new URL(httpResponseException.getHeaders().getLocation()), registryEndpointProvider);
            } else {
                // Unknown
                throw httpResponseException;
            }
        }
    } catch (NoHttpResponseException ex) {
        throw new RegistryNoResponseException(ex);
    } catch (SSLPeerUnverifiedException ex) {
        // Fall-back to HTTP
        GenericUrl httpUrl = new GenericUrl(url);
        httpUrl.setScheme("http");
        return callRegistryEndpoint(httpUrl.toURL(), registryEndpointProvider);
    }
}
Also used : NoHttpResponseException(org.apache.http.NoHttpResponseException) SSLPeerUnverifiedException(javax.net.ssl.SSLPeerUnverifiedException) Connection(com.google.cloud.tools.jib.http.Connection) Request(com.google.cloud.tools.jib.http.Request) NoHttpResponseException(org.apache.http.NoHttpResponseException) HttpResponseException(com.google.api.client.http.HttpResponseException) GenericUrl(com.google.api.client.http.GenericUrl) ErrorResponseTemplate(com.google.cloud.tools.jib.registry.json.ErrorResponseTemplate) URL(java.net.URL) Response(com.google.cloud.tools.jib.http.Response) ErrorEntryTemplate(com.google.cloud.tools.jib.registry.json.ErrorEntryTemplate) Nullable(javax.annotation.Nullable)

Example 12 with NoHttpResponseException

use of org.apache.http.NoHttpResponseException in project stocator by CODAIT.

the class SwiftConnectionManager method getRetryHandler.

/**
 * Creates custom retry handler to be used if HTTP exception happens
 *
 * @return retry handler
 */
private HttpRequestRetryHandler getRetryHandler() {
    HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {

        public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
            if (executionCount >= connectionConfiguration.getExecutionCount()) {
                // Do not retry if over max retry count
                LOG.debug("Execution count {} is bigger then threashold. Stop", executionCount);
                return false;
            }
            if (exception instanceof NoHttpResponseException) {
                LOG.debug("NoHttpResponseException exception. Retry count {}", executionCount);
                return true;
            }
            if (exception instanceof UnknownHostException) {
                LOG.debug("UnknownHostException. Retry count {}", executionCount);
                return true;
            }
            if (exception instanceof ConnectTimeoutException) {
                LOG.debug("ConnectTimeoutException. Retry count {}", executionCount);
                return true;
            }
            if (exception instanceof SocketTimeoutException || exception.getClass() == SocketTimeoutException.class || exception.getClass().isInstance(SocketTimeoutException.class)) {
                // Connection refused
                LOG.debug("socketTimeoutException Retry count {}", executionCount);
                return true;
            }
            if (exception instanceof InterruptedIOException) {
                // Timeout
                LOG.debug("InterruptedIOException Retry count {}", executionCount);
                return true;
            }
            if (exception instanceof SSLException) {
                LOG.debug("SSLException Retry count {}", executionCount);
                return true;
            }
            HttpClientContext clientContext = HttpClientContext.adapt(context);
            HttpRequest request = clientContext.getRequest();
            boolean idempotent = !(request instanceof HttpEntityEnclosingRequest);
            if (idempotent) {
                LOG.debug("HttpEntityEnclosingRequest. Retry count {}", executionCount);
                return true;
            }
            LOG.debug("Retry stopped. Retry count {}", executionCount);
            return false;
        }
    };
    return myRetryHandler;
}
Also used : NoHttpResponseException(org.apache.http.NoHttpResponseException) HttpRequest(org.apache.http.HttpRequest) InterruptedIOException(java.io.InterruptedIOException) UnknownHostException(java.net.UnknownHostException) HttpContext(org.apache.http.protocol.HttpContext) HttpClientContext(org.apache.http.client.protocol.HttpClientContext) InterruptedIOException(java.io.InterruptedIOException) IOException(java.io.IOException) SSLException(javax.net.ssl.SSLException) SocketTimeoutException(java.net.SocketTimeoutException) HttpEntityEnclosingRequest(org.apache.http.HttpEntityEnclosingRequest) HttpRequestRetryHandler(org.apache.http.client.HttpRequestRetryHandler) ConnectTimeoutException(org.apache.http.conn.ConnectTimeoutException)

Example 13 with NoHttpResponseException

use of org.apache.http.NoHttpResponseException in project newsrob by marianokamp.

the class SyncChangedArticlesStatusJob method doSync.

protected void doSync(final boolean uploadOnly, final boolean manualSync) {
    final EntryManager entryManager = getEntryManager();
    final EntriesRetriever grf = entryManager.getEntriesRetriever();
    final IStorageAdapter fileContextAdapter = entryManager.getStorageAdapter();
    if (entryManager.isModelCurrentlyUpdated())
        return;
    entryManager.lockModel("SSer.doSync");
    PL.log("SynchronizationService. Used settings: " + SettingsRenderer.renderSettings(entryManager, new StringBuilder("\n")), SynchronizationService.this);
    // entryManager.runningThread = new Thread(new Runnable() {
    Throwable caughtThrowable = null;
    // public void run() {
    final Context ctx = getApplicationContext();
    PL.log("SynchronizationService - start", SynchronizationService.this);
    PL.log("Last successful login: " + entryManager.getLastSuccessfulLogin(), SynchronizationService.this);
    // Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
    Process.setThreadPriority(Process.THREAD_PRIORITY_LOWEST);
    Timing t = new Timing("Synchronization Runnable", this);
    long started = System.currentTimeMillis();
    Log.i(TAG, "Synchronization started at " + new Date().toString() + ". started=" + started);
    final SyncJobStatus syncJobStatus = new SyncJobStatus();
    // last used
    long lastUsed = entryManager.getLastUsed();
    ModelUpdateResult result = null;
    try {
        PL.log("Run Mark - in Try", SynchronizationService.this);
        if (!uploadOnly) {
            try {
                if (!Feed.restoreFeedsIfNeccesary(this))
                    Feed.saveFeedSettings(this);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        entryManager.fireModelUpdateStarted("Synchronization", uploadOnly, manualSync);
        List<Job> jobList = new LinkedList<Job>();
        Job deleteReadArticlesJob = new DeleteArticlesJob(SynchronizationService.this, entryManager, syncJobStatus);
        Job reduceToCapacityJob = new ReduceToCapacityJob(SynchronizationService.this, entryManager, syncJobStatus);
        if (!uploadOnly) {
            if (entryManager.shouldReadItemsBeDeleted())
                jobList.add(deleteReadArticlesJob);
            jobList.add(reduceToCapacityJob);
        }
        jobList.add(new Job("Submitting annotated articles", entryManager) {

            @Override
            public void run() throws Exception {
                if (entryManager.syncCurrentlyEnabled(manualSync))
                    entryManager.getEntriesRetriever().submitNotes(this);
            }
        });
        jobList.add(new SyncChangedArticlesStatusJob(SynchronizationService.this, entryManager, syncJobStatus, manualSync));
        if (!uploadOnly && entryManager.shouldReadItemsBeDeleted())
            jobList.add(deleteReadArticlesJob);
        Job removeDeletedNotes = new Job("Removing submitted notes", entryManager) {

            @Override
            public void run() throws Exception {
                if (entryManager.syncCurrentlyEnabled(manualSync))
                    entryManager.getEntriesRetriever().removeDeletedNotes();
            }
        };
        if (!uploadOnly) {
            jobList.add(new Job("Unsubscribing from feeds", entryManager) {

                @Override
                public void run() throws Exception {
                    if (!entryManager.syncCurrentlyEnabled(manualSync))
                        return;
                    Cursor c = entryManager.getFeeds2UnsubscribeCursor();
                    try {
                        while (c.moveToNext()) {
                            String feedAtomId = c.getString(1);
                            PL.log("Unsubscribing: " + feedAtomId, SynchronizationService.this);
                            entryManager.getEntriesRetriever().unsubscribeFeed(feedAtomId);
                        }
                    } finally {
                        c.close();
                    }
                }
            });
        }
        if (!uploadOnly)
            jobList.add(removeDeletedNotes);
        if (!uploadOnly)
            jobList.add(new FetchUnreadArticlesJob(SynchronizationService.this, entryManager, syncJobStatus, manualSync));
        if (!uploadOnly)
            jobList.add(new Job("Daily update of subscriptions (feed titles)", entryManager) {

                @Override
                public void run() throws IOException, ParserConfigurationException, SAXException, GRTokenExpiredException {
                    if (entryManager.syncCurrentlyEnabled(manualSync)) {
                        grf.updateSubscriptionList(entryManager, this);
                        entryManager.fireModelUpdated();
                    }
                }
            });
        if (!uploadOnly)
            jobList.add(reduceToCapacityJob);
        if (!uploadOnly && entryManager.shouldReadItemsBeDeleted())
            jobList.add(deleteReadArticlesJob);
        if (!uploadOnly) {
            // make sure that a manual sync moves the automatic sync
            // forward,
            // i.e. when pushing "Refresh" in the middle of a 24h sync,
            // reset timer to 0, so that it will be another 24h from this
            // point on
            entryManager.getScheduler().resetBackgroundSchedule();
            final float screenSizeFactor = getScreenSizeFactor(ctx);
            final float previewScaleFactor = ctx.getResources().getDisplayMetrics().density;
            jobList.add(new Job("Downloading articles", entryManager) {

                private int currentArticle = 0;

                private Collection<Long> entries2Download;

                @Override
                public void run() {
                    if (entryManager.getSharedPreferences().getString(EntryManager.SETTINGS_STORAGE_ASSET_DOWNLOAD, EntryManager.DOWNLOAD_YES).equals(EntryManager.DOWNLOAD_NO)) {
                        Log.d(TAG, "Downloading of assets is disabled in the settings. Therefore skipping downloading webpages.");
                        return;
                    }
                    Timing tSql = new Timing("SQL Query findAllToDownload", SynchronizationService.this);
                    entries2Download = entryManager.findAllArticleIds2Download();
                    tSql.stop();
                    Timing tOutter = new Timing("Downloading all " + entries2Download.size() + " pages or well, the ones that were downloaded", SynchronizationService.this);
                    for (Long articleId : entries2Download) {
                        // get the current data
                        // LATER use a real cursor and somehow find out when
                        // data became stale
                        Entry entry = entryManager.findArticleById(articleId);
                        if (entry == null)
                            continue;
                        if (!entryManager.downloadContentCurrentlyEnabled(manualSync))
                            return;
                        if (!fileContextAdapter.canWrite()) {
                            Log.d(TAG, "File context adapter (" + fileContextAdapter.getClass().getName() + ") cannot be written to at the moment. Mounted? Read Only? Not downloading web pages.");
                            return;
                        }
                        if (isCancelled())
                            break;
                        // System.out.println("----------------- " +
                        // entry.getTitle());
                        currentArticle++;
                        entryManager.fireStatusUpdated();
                        // ones
                        if (entry.getReadState() == ReadState.READ && !entry.isStarred() && !entry.isNote())
                            continue;
                        int resolvedDownloadPref = entry.getResolvedDownloadPref(entryManager);
                        if (resolvedDownloadPref == Feed.DOWNLOAD_HEADERS_ONLY) {
                            continue;
                        }
                        // check against the db, because in the
                        // meantime
                        // the
                        // read status might have changed
                        Timing tInner = new Timing("Downloading page " + entry.getAlternateHRef(), SynchronizationService.this);
                        try {
                            // check free space
                            float freeSpaceLeft = fileContextAdapter.megaBytesFree();
                            Log.d(TAG, String.format("Free space remaining for downloads: %.2f MB.", freeSpaceLeft));
                            if (freeSpaceLeft < 0) {
                                PL.log(TAG + ": Oh no, free space left is a negative value ;-( Ignoring it.", ctx);
                            } else if (freeSpaceLeft < fileContextAdapter.megaBytesThreshold()) {
                                PL.log(TAG + ": Not enough space left to download page.", ctx);
                                entryManager.getNewsRobNotificationManager().createSyncSpaceExceededProblemNotification(fileContextAdapter.megaBytesThreshold());
                                break;
                            }
                            boolean downloadTheWholePage = (resolvedDownloadPref == Feed.DOWNLOAD_PREF_FEED_AND_MOBILE_WEBPAGE || resolvedDownloadPref == Feed.DOWNLOAD_PREF_FEED_AND_WEBPAGE);
                            String summary = entry.getContent() != null ? entry.getContent() : UIHelper.linkize(entry.getAlternateHRef(), entry.getTitle());
                            WebPageDownloadDirector.downloadWebPage(entry.getShortAtomId(), new URL(entry.getBaseUrl(entryManager)), fileContextAdapter, this, summary, downloadTheWholePage, entryManager, manualSync);
                            if (true) {
                                File assetsDir = entry.getAssetsDir(entryManager);
                                System.out.println("generatePreview=" + new PreviewGenerator(ctx, assetsDir, (int) (100 * previewScaleFactor * screenSizeFactor), (int) (100 * previewScaleFactor * screenSizeFactor), (int) (6 * previewScaleFactor)).generatePreview());
                            }
                            // TODO
                            // only
                            // one
                            // instance
                            // TODO use display metrics?
                            // TODO use orientation? Larger thumbs for
                            // larger screens?
                            entry.setDownloaded(downloadTheWholePage ? Entry.STATE_DOWNLOADED_FULL_PAGE : Entry.STATE_DOWNLOADED_FEED_CONTENT);
                            entry.setError(null);
                            entryManager.fireModelUpdated();
                        } catch (Exception e) {
                            Log.e(TAG, "Problem dowloading page " + entry.getAlternateHRef() + ".", e);
                            Throwable cause = null;
                            if (e instanceof DownloadException) {
                                cause = ((DownloadException) e).getCause();
                                Log.d(TAG, "DownloadException cause=" + cause);
                            } else
                                Log.d(TAG, "Exception=" + e);
                            boolean downloadError = false;
                            if (e instanceof DownloadCancelledException || cause != null && (cause instanceof FileNotFoundException || cause instanceof SocketTimeoutException || cause instanceof SocketException || cause instanceof NoHttpResponseException || cause instanceof UnknownHostException || cause instanceof DownloadCancelledException || cause instanceof DownloadTimedOutException)) {
                                Log.d(TAG, "Caught a FNFE");
                            } else {
                                Log.d(TAG, "Marked download as error.");
                                downloadError = true;
                            }
                            StringBuilder renderedStackTrace = new StringBuilder();
                            U.renderStackTrace(e, renderedStackTrace);
                            entry.setError(cause != null ? "Cause: " + cause.getClass().getSimpleName() + ": " + cause.getMessage() : e.getClass().getSimpleName() + ": " + e.getMessage() + "\nStacktrace: " + renderedStackTrace);
                            entry.setDownloaded(downloadError ? Entry.STATE_DOWNLOAD_ERROR : Entry.STATE_NOT_DOWNLOADED);
                        }
                        entryManager.updatedDownloaded(entry);
                        tInner.stop();
                    }
                    tOutter.stop();
                }

                @Override
                public boolean isProgressMeassurable() {
                    return true;
                }

                @Override
                public int[] getProgress() {
                    return new int[] { currentArticle, entries2Download != null ? entries2Download.size() : 0 };
                }
            });
        }
        PL.log("Run Mark - Jobs added", this);
        entryManager.runJobs(jobList);
        Log.d(TAG, "NoOfEntriesUpdated=" + syncJobStatus.noOfEntriesUpdated);
        Log.d(TAG, "NoOfEntriesFetched=" + syncJobStatus.noOfEntriesFetched);
        PL.log("Run Mark - Mission accomplished. -> complete ", this);
        result = new SynchronizeModelSucceeded(syncJobStatus.noOfEntriesUpdated);
    } catch (Throwable throwable) {
        result = new SynchronizeModelFailed(throwable);
        Log.d(TAG, "Problem during synchronization.", throwable);
    } finally {
        PL.log("Run Mark - In Finally", this);
        entryManager.unlockModel("SSer.doSync");
        entryManager.clearCancelState();
        entryManager.fireModelUpdateFinished(result);
        entryManager.fireStatusUpdated();
        Log.i(TAG, "Synchronization finished at " + new Date().toString() + ". started=" + started);
        t.stop();
        if (!uploadOnly)
            entryManager.setLastSync(caughtThrowable == null);
        int noOfNewArticles = entryManager.getNoOfNewArticlesSinceLastUsed(lastUsed);
        entryManager.getNewsRobNotificationManager().notifyNewArticles(entryManager, lastUsed, noOfNewArticles);
        PL.log("Run Mark - End of Finally", this);
        resetLastStarted();
        releaseWakeLock();
    }
}
Also used : SocketException(java.net.SocketException) FileNotFoundException(java.io.FileNotFoundException) SyncJobStatus(com.newsrob.EntryManager.SyncJobStatus) Cursor(android.database.Cursor) DownloadCancelledException(com.newsrob.download.DownloadCancelledException) URL(java.net.URL) DownloadException(com.newsrob.download.DownloadException) Job(com.newsrob.jobs.Job) Context(android.content.Context) NoHttpResponseException(org.apache.http.NoHttpResponseException) DownloadTimedOutException(com.newsrob.download.DownloadTimedOutException) SynchronizeModelFailed(com.newsrob.jobs.SynchronizeModelFailed) ModelUpdateResult(com.newsrob.jobs.ModelUpdateResult) UnknownHostException(java.net.UnknownHostException) SynchronizeModelSucceeded(com.newsrob.jobs.SynchronizeModelSucceeded) Date(java.util.Date) ClientProtocolException(org.apache.http.client.ClientProtocolException) DownloadTimedOutException(com.newsrob.download.DownloadTimedOutException) NoHttpResponseException(org.apache.http.NoHttpResponseException) SocketException(java.net.SocketException) SocketTimeoutException(java.net.SocketTimeoutException) ParseException(java.text.ParseException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) FileNotFoundException(java.io.FileNotFoundException) InvocationTargetException(java.lang.reflect.InvocationTargetException) DownloadException(com.newsrob.download.DownloadException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException) DownloadCancelledException(com.newsrob.download.DownloadCancelledException) LinkedList(java.util.LinkedList) IStorageAdapter(com.newsrob.storage.IStorageAdapter) SocketTimeoutException(java.net.SocketTimeoutException) Timing(com.newsrob.util.Timing) PreviewGenerator(com.newsrob.util.PreviewGenerator) File(java.io.File)

Example 14 with NoHttpResponseException

use of org.apache.http.NoHttpResponseException in project platform_external_apache-http by android.

the class DefaultResponseParser method parseHead.

@Override
protected HttpMessage parseHead(final SessionInputBuffer sessionBuffer) throws IOException, HttpException {
    // clear the buffer
    this.lineBuf.clear();
    // read out the HTTP status string
    int count = 0;
    ParserCursor cursor = null;
    do {
        int i = sessionBuffer.readLine(this.lineBuf);
        if (i == -1 && count == 0) {
            // The server just dropped connection on us
            throw new NoHttpResponseException("The target server failed to respond");
        }
        cursor = new ParserCursor(0, this.lineBuf.length());
        if (lineParser.hasProtocolVersion(this.lineBuf, cursor)) {
            // Got one
            break;
        } else if (i == -1 || count >= this.maxGarbageLines) {
            // Giving up
            throw new ProtocolException("The server failed to respond with a " + "valid HTTP response");
        }
        count++;
    } while (true);
    // create the status line from the status string
    StatusLine statusline = lineParser.parseStatusLine(this.lineBuf, cursor);
    return this.responseFactory.newHttpResponse(statusline, null);
}
Also used : ParserCursor(org.apache.http.message.ParserCursor) NoHttpResponseException(org.apache.http.NoHttpResponseException) StatusLine(org.apache.http.StatusLine) ProtocolException(org.apache.http.ProtocolException)

Example 15 with NoHttpResponseException

use of org.apache.http.NoHttpResponseException in project platform_external_apache-http by android.

the class HttpResponseParser method parseHead.

protected HttpMessage parseHead(final SessionInputBuffer sessionBuffer) throws IOException, HttpException, ParseException {
    this.lineBuf.clear();
    int i = sessionBuffer.readLine(this.lineBuf);
    if (i == -1) {
        throw new NoHttpResponseException("The target server failed to respond");
    }
    // create the status line from the status string
    ParserCursor cursor = new ParserCursor(0, this.lineBuf.length());
    StatusLine statusline = lineParser.parseStatusLine(this.lineBuf, cursor);
    return this.responseFactory.newHttpResponse(statusline, null);
}
Also used : NoHttpResponseException(org.apache.http.NoHttpResponseException) ParserCursor(org.apache.http.message.ParserCursor) StatusLine(org.apache.http.StatusLine)

Aggregations

NoHttpResponseException (org.apache.http.NoHttpResponseException)38 IOException (java.io.IOException)13 SocketException (java.net.SocketException)12 StatusLine (org.apache.http.StatusLine)12 ConnectTimeoutException (org.apache.http.conn.ConnectTimeoutException)11 SocketTimeoutException (java.net.SocketTimeoutException)10 ParserCursor (org.apache.http.message.ParserCursor)9 UnknownHostException (java.net.UnknownHostException)8 HttpClientContext (org.apache.http.client.protocol.HttpClientContext)8 HttpRequest (org.apache.http.HttpRequest)7 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)7 ConnectException (java.net.ConnectException)6 HttpEntityEnclosingRequest (org.apache.http.HttpEntityEnclosingRequest)6 InterruptedIOException (java.io.InterruptedIOException)5 SSLException (javax.net.ssl.SSLException)5 HashMap (java.util.HashMap)4 HttpEntity (org.apache.http.HttpEntity)4 RequestConfig (org.apache.http.client.config.RequestConfig)4 HttpPost (org.apache.http.client.methods.HttpPost)4 SolrException (org.apache.solr.common.SolrException)4