@Override public String toString() { StringBuilder sb = new StringBuilder() ; sb.append("HttpException: ") ; int code = getResponseCode() ; if ( code != QueryExceptionHTTP.noResponseCode ) { sb.append(code) ; if ( getResponseMessage() != null ) { sb.append(" ") ; sb.append(getResponseMessage()) ; } } else { sb.append(getCause().toString()+": "+getMessage()) ; } return sb.toString() ; } }
protected ResultSet executeSelectQuery(String query) { logger.trace("Sending query\n{} ...", query); QueryExecution qe = qef.createQueryExecution(query); try { ResultSet rs = qe.execSelect(); timeout = false; return rs; } catch (QueryExceptionHTTP e) { if(e.getCause() instanceof SocketTimeoutException){ if(timeout){ logger.warn("Got timeout"); throw e; } else { logger.trace("Got local timeout"); } } else { logger.error("Exception executing query", e); } return new ResultSetMem(); } }
protected Model executeConstructQuery(String query) { logger.trace("Sending query\n{} ...", query); QueryExecution qe = qef.createQueryExecution(query); try { Model model = qe.execConstruct(); timeout = false; if(model.size() == 0){ fullDataLoaded = true; } logger.debug("Got " + model.size() + " triples."); return model; } catch (QueryExceptionHTTP e) { if(e.getCause() instanceof SocketTimeoutException){ logger.warn("Got timeout"); } else { logger.error("Exception executing query", e); } return ModelFactory.createDefaultModel(); } }
@Test public void testStringTimeout2() { BasicPattern basicPattern = new BasicPattern(); basicPattern.add(Triple.ANY); Node serviceNode = NodeFactory.createURI(SERVICE); OpService opService = new OpService(serviceNode, new OpBGP(basicPattern), false); Context context = new Context(); ARQ.setNormalMode(context); context.set(Service.queryTimeout, "10,10000"); try { Service.exec(opService, context); Assert.fail("Expected QueryExceptionHTTP"); } catch (QueryExceptionHTTP expected) { Throwable thrown = expected.getCause() ; if ( thrown instanceof SocketException || thrown instanceof ConnectTimeoutException ) { // expected } else { Assert.fail(String.format("Expected SocketException or ConnectTimeoutException, instead got: %s %s", thrown.getClass().getName(), thrown.getMessage())); } } }
@Test public void testNumericTimeout() { BasicPattern basicPattern = new BasicPattern(); basicPattern.add(Triple.ANY); Node serviceNode = NodeFactory.createURI(SERVICE); OpService opService = new OpService(serviceNode, new OpBGP(basicPattern), false); Context context = new Context(); ARQ.setNormalMode(context); context.set(Service.queryTimeout, 10); try { Service.exec(opService, context); Assert.fail("Expected QueryExceptionHTTP"); } catch (QueryExceptionHTTP expected) { Throwable thrown = expected.getCause() ; if ( thrown instanceof SocketException || thrown instanceof ConnectTimeoutException ) { // expected } else { Assert.fail(String.format("Expected SocketException or ConnectTimeoutException, instead got: %s %s", thrown.getClass().getName(), thrown.getMessage())); } } }
@Test public void testStringTimeout() { BasicPattern basicPattern = new BasicPattern(); basicPattern.add(Triple.ANY); Node serviceNode = NodeFactory.createURI(SERVICE); OpService opService = new OpService(serviceNode, new OpBGP(basicPattern), false); Context context = new Context(); ARQ.setNormalMode(context); context.set(Service.queryTimeout, "10"); try { Service.exec(opService, context); Assert.fail("Expected QueryExceptionHTTP"); } catch (QueryExceptionHTTP expected) { Throwable thrown = expected.getCause() ; if ( thrown instanceof SocketException || thrown instanceof ConnectTimeoutException ) { // expected } else { Assert.fail(String.format("Expected SocketException or ConnectTimeoutException, instead got: %s %s", thrown.getClass().getName(), thrown.getMessage())); } } }