Search in sources :

Example 6 with DatawaveWebApplicationException

use of datawave.webservice.common.exception.DatawaveWebApplicationException in project datawave by NationalSecurityAgency.

the class ModelBean method listModelNames.

/**
 * Get the names of the models
 *
 * @param modelTableName
 *            name of the table that contains the model
 * @return datawave.webservice.model.ModelList
 * @RequestHeader X-ProxiedEntitiesChain use when proxying request for user
 *
 * @HTTP 200 success
 * @HTTP 500 internal server error
 */
@GET
@Produces({ "application/xml", "text/xml", "application/json", "text/yaml", "text/x-yaml", "application/x-yaml", "application/x-protobuf", "application/x-protostuff", "text/html" })
@Path("/list")
@GZIP
@Interceptors(ResponseInterceptor.class)
public ModelList listModelNames(@QueryParam("modelTableName") String modelTableName) {
    if (modelTableName == null) {
        modelTableName = defaultModelTableName;
    }
    ModelList response = new ModelList(jqueryUri, dataTablesUri, modelTableName);
    // Find out who/what called this method
    Principal p = ctx.getCallerPrincipal();
    String user = p.getName();
    Set<Authorizations> cbAuths = new HashSet<>();
    if (p instanceof DatawavePrincipal) {
        DatawavePrincipal cp = (DatawavePrincipal) p;
        user = cp.getShortName();
        for (Collection<String> auths : cp.getAuthorizations()) {
            cbAuths.add(new Authorizations(auths.toArray(new String[auths.size()])));
        }
    }
    log.trace(user + " has authorizations " + cbAuths);
    Connector connector = null;
    HashSet<String> modelNames = new HashSet<>();
    try {
        Map<String, String> trackingMap = connectionFactory.getTrackingMap(Thread.currentThread().getStackTrace());
        connector = connectionFactory.getConnection(AccumuloConnectionFactory.Priority.LOW, trackingMap);
        try (Scanner scanner = ScannerHelper.createScanner(connector, this.checkModelTableName(modelTableName), cbAuths)) {
            for (Entry<Key, Value> entry : scanner) {
                String colf = entry.getKey().getColumnFamily().toString();
                if (!RESERVED_COLF_VALUES.contains(colf) && !modelNames.contains(colf)) {
                    String[] parts = colf.split(ModelKeyParser.NULL_BYTE);
                    if (parts.length == 1)
                        modelNames.add(colf);
                    else if (parts.length == 2)
                        modelNames.add(parts[0]);
                }
            }
        }
    } catch (Exception e) {
        QueryException qe = new QueryException(DatawaveErrorCode.MODEL_NAME_LIST_ERROR, e);
        log.error(qe);
        response.addException(qe.getBottomQueryException());
        throw new DatawaveWebApplicationException(qe, response);
    } finally {
        if (null != connector) {
            try {
                connectionFactory.returnConnection(connector);
            } catch (Exception e) {
                log.error("Error returning connection to factory", e);
            }
        }
    }
    response.setNames(modelNames);
    return response;
}
Also used : Connector(org.apache.accumulo.core.client.Connector) Scanner(org.apache.accumulo.core.client.Scanner) Authorizations(org.apache.accumulo.core.security.Authorizations) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) PreConditionFailedException(datawave.webservice.common.exception.PreConditionFailedException) NotFoundException(datawave.webservice.common.exception.NotFoundException) MutationsRejectedException(org.apache.accumulo.core.client.MutationsRejectedException) QueryException(datawave.webservice.query.exception.QueryException) ModelList(datawave.webservice.model.ModelList) QueryException(datawave.webservice.query.exception.QueryException) DefaultValue(javax.ws.rs.DefaultValue) Value(org.apache.accumulo.core.data.Value) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) Principal(java.security.Principal) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal) Key(org.apache.accumulo.core.data.Key) HashSet(java.util.HashSet) Path(javax.ws.rs.Path) Interceptors(javax.interceptor.Interceptors) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) GZIP(org.jboss.resteasy.annotations.GZIP)

Example 7 with DatawaveWebApplicationException

use of datawave.webservice.common.exception.DatawaveWebApplicationException in project datawave by NationalSecurityAgency.

the class ModelBean method getModel.

/**
 * Retrieve the model and all of its mappings
 *
 * @param name
 *            model name
 * @param modelTableName
 *            name of the table that contains the model
 * @return datawave.webservice.model.Model
 * @RequestHeader X-ProxiedEntitiesChain use when proxying request for user
 *
 * @HTTP 200 success
 * @HTTP 404 model not found
 * @HTTP 500 internal server error
 */
@GET
@Produces({ "application/xml", "text/xml", "application/json", "text/yaml", "text/x-yaml", "application/x-yaml", "application/x-protobuf", "application/x-protostuff", "text/html" })
@Path("/{name}")
@GZIP
@Interceptors({ RequiredInterceptor.class, ResponseInterceptor.class })
public datawave.webservice.model.Model getModel(@Required("name") @PathParam("name") String name, @QueryParam("modelTableName") String modelTableName) {
    if (modelTableName == null) {
        modelTableName = defaultModelTableName;
    }
    datawave.webservice.model.Model response = new datawave.webservice.model.Model(jqueryUri, dataTablesUri);
    // Find out who/what called this method
    Principal p = ctx.getCallerPrincipal();
    String user = p.getName();
    Set<Authorizations> cbAuths = new HashSet<>();
    if (p instanceof DatawavePrincipal) {
        DatawavePrincipal cp = (DatawavePrincipal) p;
        user = cp.getShortName();
        for (Collection<String> auths : cp.getAuthorizations()) {
            cbAuths.add(new Authorizations(auths.toArray(new String[auths.size()])));
        }
    }
    log.trace(user + " has authorizations " + cbAuths);
    Connector connector = null;
    try {
        Map<String, String> trackingMap = connectionFactory.getTrackingMap(Thread.currentThread().getStackTrace());
        connector = connectionFactory.getConnection(AccumuloConnectionFactory.Priority.LOW, trackingMap);
        try (Scanner scanner = ScannerHelper.createScanner(connector, this.checkModelTableName(modelTableName), cbAuths)) {
            IteratorSetting cfg = new IteratorSetting(21, "colfRegex", RegExFilter.class.getName());
            cfg.addOption(RegExFilter.COLF_REGEX, "^" + name + "(\\x00.*)?");
            scanner.addScanIterator(cfg);
            for (Entry<Key, Value> entry : scanner) {
                FieldMapping mapping = ModelKeyParser.parseKey(entry.getKey(), cbAuths);
                response.getFields().add(mapping);
            }
        }
    } catch (Exception e) {
        QueryException qe = new QueryException(DatawaveErrorCode.MODEL_FETCH_ERROR, e);
        log.error(qe);
        response.addException(qe.getBottomQueryException());
        throw new DatawaveWebApplicationException(qe, response);
    } finally {
        if (null != connector) {
            try {
                connectionFactory.returnConnection(connector);
            } catch (Exception e) {
                log.error("Error returning connection to factory", e);
            }
        }
    }
    // return 404 if model not found
    if (response.getFields().isEmpty()) {
        throw new NotFoundException(null, response);
    }
    response.setName(name);
    return response;
}
Also used : Connector(org.apache.accumulo.core.client.Connector) Scanner(org.apache.accumulo.core.client.Scanner) FieldMapping(datawave.webservice.model.FieldMapping) NotFoundException(datawave.webservice.common.exception.NotFoundException) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal) RegExFilter(org.apache.accumulo.core.iterators.user.RegExFilter) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) HashSet(java.util.HashSet) Authorizations(org.apache.accumulo.core.security.Authorizations) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) PreConditionFailedException(datawave.webservice.common.exception.PreConditionFailedException) NotFoundException(datawave.webservice.common.exception.NotFoundException) MutationsRejectedException(org.apache.accumulo.core.client.MutationsRejectedException) QueryException(datawave.webservice.query.exception.QueryException) QueryException(datawave.webservice.query.exception.QueryException) IteratorSetting(org.apache.accumulo.core.client.IteratorSetting) DefaultValue(javax.ws.rs.DefaultValue) Value(org.apache.accumulo.core.data.Value) Principal(java.security.Principal) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal) Key(org.apache.accumulo.core.data.Key) Path(javax.ws.rs.Path) Interceptors(javax.interceptor.Interceptors) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) GZIP(org.jboss.resteasy.annotations.GZIP)

Example 8 with DatawaveWebApplicationException

use of datawave.webservice.common.exception.DatawaveWebApplicationException in project datawave by NationalSecurityAgency.

the class ModelBean method deleteMapping.

private VoidResponse deleteMapping(datawave.webservice.model.Model model, String modelTableName, boolean reloadCache) {
    VoidResponse response = new VoidResponse();
    Connector connector = null;
    BatchWriter writer = null;
    String tableName = this.checkModelTableName(modelTableName);
    try {
        Map<String, String> trackingMap = connectionFactory.getTrackingMap(Thread.currentThread().getStackTrace());
        connector = connectionFactory.getConnection(AccumuloConnectionFactory.Priority.LOW, trackingMap);
        writer = connector.createBatchWriter(tableName, new BatchWriterConfig().setMaxLatency(BATCH_WRITER_MAX_LATENCY, TimeUnit.MILLISECONDS).setMaxMemory(BATCH_WRITER_MAX_MEMORY).setMaxWriteThreads(BATCH_WRITER_MAX_THREADS));
        for (FieldMapping mapping : model.getFields()) {
            Mutation m = ModelKeyParser.createDeleteMutation(mapping, model.getName());
            writer.addMutation(m);
        }
    } catch (Exception e) {
        log.error("Could not delete mapping.", e);
        QueryException qe = new QueryException(DatawaveErrorCode.MAPPING_DELETION_ERROR, e);
        response.addException(qe.getBottomQueryException());
        throw new DatawaveWebApplicationException(qe, response);
    } finally {
        if (null != writer) {
            try {
                writer.close();
            } catch (MutationsRejectedException e1) {
                QueryException qe = new QueryException(DatawaveErrorCode.WRITER_CLOSE_ERROR, e1);
                log.error(qe);
                response.addException(qe);
                throw new DatawaveWebApplicationException(qe, response);
            }
        }
        if (null != connector) {
            try {
                connectionFactory.returnConnection(connector);
            } catch (Exception e) {
                log.error("Error returning connection to factory", e);
            }
        }
    }
    if (reloadCache)
        cache.reloadCache(tableName);
    return response;
}
Also used : Connector(org.apache.accumulo.core.client.Connector) QueryException(datawave.webservice.query.exception.QueryException) VoidResponse(datawave.webservice.result.VoidResponse) FieldMapping(datawave.webservice.model.FieldMapping) BatchWriterConfig(org.apache.accumulo.core.client.BatchWriterConfig) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) BatchWriter(org.apache.accumulo.core.client.BatchWriter) Mutation(org.apache.accumulo.core.data.Mutation) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) PreConditionFailedException(datawave.webservice.common.exception.PreConditionFailedException) NotFoundException(datawave.webservice.common.exception.NotFoundException) MutationsRejectedException(org.apache.accumulo.core.client.MutationsRejectedException) QueryException(datawave.webservice.query.exception.QueryException) MutationsRejectedException(org.apache.accumulo.core.client.MutationsRejectedException)

Example 9 with DatawaveWebApplicationException

use of datawave.webservice.common.exception.DatawaveWebApplicationException in project datawave by NationalSecurityAgency.

the class QueryExecutorBean method close.

private VoidResponse close(String id, Principal principal) {
    VoidResponse response = new VoidResponse();
    try {
        boolean connectionRequestCanceled = accumuloConnectionRequestBean.cancelConnectionRequest(id, principal);
        Pair<QueryLogic<?>, Connector> tuple = qlCache.pollIfOwnedBy(id, ((DatawavePrincipal) principal).getShortName());
        if (tuple == null) {
            try {
                RunningQuery query = getQueryById(id, principal);
                close(query);
            } catch (Exception e) {
                log.debug("Failed to close " + id + ", checking if closed previously");
                // if this is a query that is in the closed query cache, then we have already successfully closed this query so ignore
                if (!closedQueryCache.exists(id)) {
                    log.debug("Failed to close " + id + ", checking if connection request was canceled");
                    // if connection request was canceled, then the call was successful even if a RunningQuery was not found
                    if (!connectionRequestCanceled) {
                        log.error("Failed to close " + id, e);
                        throw e;
                    }
                }
            }
            response.addMessage(id + " closed.");
        } else {
            QueryLogic<?> logic = tuple.getFirst();
            try {
                logic.close();
            } catch (Exception e) {
                log.error("Exception occurred while closing query logic; may be innocuous if scanners were running.", e);
            }
            connectionFactory.returnConnection(tuple.getSecond());
            response.addMessage(id + " closed before create completed.");
        }
        // no longer need to remember this query
        closedQueryCache.remove(id);
        return response;
    } catch (DatawaveWebApplicationException e) {
        throw e;
    } catch (Exception e) {
        QueryException qe = new QueryException(DatawaveErrorCode.CLOSE_ERROR, e, MessageFormat.format("query_id: {0}", id));
        log.error(qe, e);
        response.addException(qe.getBottomQueryException());
        int statusCode = qe.getBottomQueryException().getStatusCode();
        throw new DatawaveWebApplicationException(qe, response, statusCode);
    }
}
Also used : Connector(org.apache.accumulo.core.client.Connector) PreConditionFailedQueryException(datawave.webservice.query.exception.PreConditionFailedQueryException) NotFoundQueryException(datawave.webservice.query.exception.NotFoundQueryException) NoResultsQueryException(datawave.webservice.query.exception.NoResultsQueryException) QueryException(datawave.webservice.query.exception.QueryException) UnauthorizedQueryException(datawave.webservice.query.exception.UnauthorizedQueryException) BadRequestQueryException(datawave.webservice.query.exception.BadRequestQueryException) VoidResponse(datawave.webservice.result.VoidResponse) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) QueryLogic(datawave.webservice.query.logic.QueryLogic) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) CancellationException(java.util.concurrent.CancellationException) PreConditionFailedQueryException(datawave.webservice.query.exception.PreConditionFailedQueryException) WebApplicationException(javax.ws.rs.WebApplicationException) HeuristicMixedException(javax.transaction.HeuristicMixedException) NotFoundQueryException(datawave.webservice.query.exception.NotFoundQueryException) NoResultsQueryException(datawave.webservice.query.exception.NoResultsQueryException) IOException(java.io.IOException) QueryException(datawave.webservice.query.exception.QueryException) BadRequestException(datawave.webservice.common.exception.BadRequestException) HeuristicRollbackException(javax.transaction.HeuristicRollbackException) UnauthorizedQueryException(datawave.webservice.query.exception.UnauthorizedQueryException) JAXBException(javax.xml.bind.JAXBException) UnauthorizedException(datawave.webservice.common.exception.UnauthorizedException) NoResultsException(datawave.webservice.common.exception.NoResultsException) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) RollbackException(javax.transaction.RollbackException) BadRequestQueryException(datawave.webservice.query.exception.BadRequestQueryException)

Example 10 with DatawaveWebApplicationException

use of datawave.webservice.common.exception.DatawaveWebApplicationException in project datawave by NationalSecurityAgency.

the class QueryExecutorBean method next.

private BaseQueryResponse next(final String id, boolean checkForContentLookup) {
    // in case we don't make it to creating the response from the QueryLogic
    BaseQueryResponse response = responseObjectFactory.getEventQueryResponse();
    Collection<String> proxyServers = null;
    Principal p = ctx.getCallerPrincipal();
    String userid = p.getName();
    if (p instanceof DatawavePrincipal) {
        DatawavePrincipal dp = (DatawavePrincipal) p;
        userid = dp.getShortName();
        proxyServers = dp.getProxyServers();
    }
    Span span = null;
    RunningQuery query = null;
    Query contentLookupSettings = null;
    try {
        ctx.getUserTransaction().begin();
        // Not calling getQueryById() here. We don't want to pull the persisted definition.
        query = queryCache.get(id);
        // The lock should be released at the end of the method call.
        if (!queryCache.lock(id)) {
            throw new QueryException(DatawaveErrorCode.QUERY_LOCKED_ERROR);
        }
        // an error.
        if (null == query || null == query.getConnection()) {
            // status code.
            if (null == query) {
                List<Query> queries = persister.findById(id);
                if (queries == null || queries.size() != 1) {
                    throw new NotFoundQueryException(DatawaveErrorCode.NO_QUERY_OBJECT_MATCH, MessageFormat.format("{0}", id));
                }
            }
            throw new PreConditionFailedQueryException(DatawaveErrorCode.QUERY_TIMEOUT_OR_SERVER_ERROR, MessageFormat.format("id = {0}", id));
        } else {
            // Validate the query belongs to the caller
            if (!query.getSettings().getOwner().equals(userid)) {
                throw new UnauthorizedQueryException(DatawaveErrorCode.QUERY_OWNER_MISMATCH, MessageFormat.format("{0} != {1}", userid, query.getSettings().getOwner()));
            }
            // Set the active call and get next
            query.setActiveCall(true);
            response = _next(query, id, proxyServers, span);
            // Conditionally swap the standard response with content
            if (checkForContentLookup) {
                final Query settings = query.getSettings();
                final Parameter contentLookupParam = settings.findParameter(LookupUUIDUtil.PARAM_CONTENT_LOOKUP);
                if ((null != contentLookupParam) && Boolean.parseBoolean(contentLookupParam.getParameterValue())) {
                    contentLookupSettings = settings;
                }
            }
            // Unset the active call and return
            query.setActiveCall(false);
        }
    } catch (NoResultsException e) {
        if (query != null) {
            query.setActiveCall(false);
            if (query.getLogic().getCollectQueryMetrics()) {
                try {
                    // do not set the error message here - zero results is not an error that should be added to metrics
                    metrics.updateMetric(query.getMetric());
                } catch (Exception e1) {
                    log.error(e1.getMessage());
                }
            }
        }
        try {
            ctx.getUserTransaction().setRollbackOnly();
        } catch (Exception ex) {
            log.error("Error marking transaction for roll back", ex);
        }
        // close the query, as there were no results and we are done here
        close(id);
        // remember that we auto-closed this query
        closedQueryCache.add(id);
        throw e;
    } catch (DatawaveWebApplicationException e) {
        if (query != null) {
            query.setActiveCall(false);
            if (query.getLogic().getCollectQueryMetrics()) {
                query.getMetric().setError(e);
                try {
                    metrics.updateMetric(query.getMetric());
                } catch (Exception e1) {
                    log.error("Error updating query metrics", e1);
                }
            }
        }
        try {
            ctx.getUserTransaction().setRollbackOnly();
        } catch (Exception ex) {
            log.error("Error marking transaction for roll back", ex);
        }
        if (e.getCause() instanceof NoResultsException) {
            close(id);
            // remember that we auto-closed this query
            closedQueryCache.add(id);
        }
        throw e;
    } catch (Exception e) {
        log.error("Query Failed", e);
        if (query != null) {
            query.setActiveCall(false);
            if (query.getLogic().getCollectQueryMetrics() == true) {
                query.getMetric().setError(e);
                try {
                    metrics.updateMetric(query.getMetric());
                } catch (Exception e1) {
                    log.error("Error updating query metrics", e1);
                }
            }
        }
        try {
            ctx.getUserTransaction().setRollbackOnly();
        } catch (Exception ex) {
            log.error("Error marking transaction for roll back", ex);
        }
        QueryException qe = new QueryException(DatawaveErrorCode.QUERY_NEXT_ERROR, e, MessageFormat.format("query id: {0}", id));
        if (e.getCause() instanceof NoResultsException) {
            log.debug("Got a nested NoResultsException", e);
            close(id);
            // remember that we auto-closed this query
            closedQueryCache.add(id);
        } else {
            try {
                close(id);
            } catch (Exception ce) {
                log.error(qe, ce);
            }
            log.error(qe, e);
            response.addException(qe.getBottomQueryException());
        }
        int statusCode = qe.getBottomQueryException().getStatusCode();
        throw new DatawaveWebApplicationException(qe, response, statusCode);
    } finally {
        queryCache.unlock(id);
        try {
            if (ctx.getUserTransaction().getStatus() == Status.STATUS_MARKED_ROLLBACK) {
                ctx.getUserTransaction().rollback();
            } else if (ctx.getUserTransaction().getStatus() != Status.STATUS_NO_TRANSACTION) {
                // no reason to commit if transaction not started, ie Query not found exception
                ctx.getUserTransaction().commit();
            }
        } catch (IllegalStateException e) {
            log.error("Error committing transaction: thread not associated with transaction", e);
        } catch (RollbackException e) {
            log.error("Error committing transaction: marked for rollback due to error", e);
        } catch (HeuristicMixedException e) {
            log.error("Error committing transaction: partial commit of resources", e);
        } catch (HeuristicRollbackException e) {
            log.error("Error committing transaction: resources rolled back transaction", e);
        } catch (Exception e) {
            log.error("Error committing transaction: Unknown error", e);
        } finally {
            // Stop timing on this trace, if any
            if (span != null) {
                span.stop();
            }
        }
    }
    // If applicable, perform a paged content lookup (i.e., not streamed), replacing its results in the returned response
    if (null != contentLookupSettings) {
        final NextContentCriteria criteria = new NextContentCriteria(id, contentLookupSettings);
        response = this.lookupUUIDUtil.lookupContentByNextResponse(criteria, response);
    }
    return response;
}
Also used : NoResultsException(datawave.webservice.common.exception.NoResultsException) Query(datawave.webservice.query.Query) PreConditionFailedQueryException(datawave.webservice.query.exception.PreConditionFailedQueryException) HeuristicRollbackException(javax.transaction.HeuristicRollbackException) RollbackException(javax.transaction.RollbackException) Span(org.apache.accumulo.core.trace.Span) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal) NotFoundQueryException(datawave.webservice.query.exception.NotFoundQueryException) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) CancellationException(java.util.concurrent.CancellationException) PreConditionFailedQueryException(datawave.webservice.query.exception.PreConditionFailedQueryException) WebApplicationException(javax.ws.rs.WebApplicationException) HeuristicMixedException(javax.transaction.HeuristicMixedException) NotFoundQueryException(datawave.webservice.query.exception.NotFoundQueryException) NoResultsQueryException(datawave.webservice.query.exception.NoResultsQueryException) IOException(java.io.IOException) QueryException(datawave.webservice.query.exception.QueryException) BadRequestException(datawave.webservice.common.exception.BadRequestException) HeuristicRollbackException(javax.transaction.HeuristicRollbackException) UnauthorizedQueryException(datawave.webservice.query.exception.UnauthorizedQueryException) JAXBException(javax.xml.bind.JAXBException) UnauthorizedException(datawave.webservice.common.exception.UnauthorizedException) NoResultsException(datawave.webservice.common.exception.NoResultsException) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) RollbackException(javax.transaction.RollbackException) BadRequestQueryException(datawave.webservice.query.exception.BadRequestQueryException) UnauthorizedQueryException(datawave.webservice.query.exception.UnauthorizedQueryException) PreConditionFailedQueryException(datawave.webservice.query.exception.PreConditionFailedQueryException) NotFoundQueryException(datawave.webservice.query.exception.NotFoundQueryException) NoResultsQueryException(datawave.webservice.query.exception.NoResultsQueryException) QueryException(datawave.webservice.query.exception.QueryException) UnauthorizedQueryException(datawave.webservice.query.exception.UnauthorizedQueryException) BadRequestQueryException(datawave.webservice.query.exception.BadRequestQueryException) HeuristicRollbackException(javax.transaction.HeuristicRollbackException) NextContentCriteria(datawave.webservice.query.util.NextContentCriteria) BaseQueryResponse(datawave.webservice.result.BaseQueryResponse) HeuristicMixedException(javax.transaction.HeuristicMixedException) Parameter(datawave.webservice.query.QueryImpl.Parameter) DatawaveWebApplicationException(datawave.webservice.common.exception.DatawaveWebApplicationException) Principal(java.security.Principal) DatawavePrincipal(datawave.security.authorization.DatawavePrincipal)

Aggregations

DatawaveWebApplicationException (datawave.webservice.common.exception.DatawaveWebApplicationException)72 QueryException (datawave.webservice.query.exception.QueryException)64 NoResultsQueryException (datawave.webservice.query.exception.NoResultsQueryException)48 IOException (java.io.IOException)43 Produces (javax.ws.rs.Produces)43 NoResultsException (datawave.webservice.common.exception.NoResultsException)39 BadRequestQueryException (datawave.webservice.query.exception.BadRequestQueryException)37 UnauthorizedQueryException (datawave.webservice.query.exception.UnauthorizedQueryException)37 NotFoundQueryException (datawave.webservice.query.exception.NotFoundQueryException)36 GZIP (org.jboss.resteasy.annotations.GZIP)34 Interceptors (javax.interceptor.Interceptors)33 BadRequestException (datawave.webservice.common.exception.BadRequestException)32 UnauthorizedException (datawave.webservice.common.exception.UnauthorizedException)32 PreConditionFailedQueryException (datawave.webservice.query.exception.PreConditionFailedQueryException)31 Path (javax.ws.rs.Path)27 DatawavePrincipal (datawave.security.authorization.DatawavePrincipal)26 Principal (java.security.Principal)26 WebApplicationException (javax.ws.rs.WebApplicationException)25 RejectedExecutionException (java.util.concurrent.RejectedExecutionException)24 HeuristicMixedException (javax.transaction.HeuristicMixedException)24