package org.jboss.resteasy.test.client.resource;
import org.jboss.logging.Logger;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Response;
@Path("/")
public class AsyncTimeoutExceptionsResource {
private static Logger logger = Logger.getLogger(AsyncTimeoutExceptionsResource.class);
@GET
@Path("/sticker")
@Produces("application/xml")
public AsyncTimeoutExceptionsSticker sticker() throws InterruptedException {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
logger.error("Sleep was interrupted", e);
}
AsyncTimeoutExceptionsSticker sticker = new AsyncTimeoutExceptionsSticker();
sticker.setName("turtle");
return sticker;
}
@GET
@Path("/sticker2")
@Produces("application/xml")
public AsyncTimeoutExceptionsSticker sticker2(@Suspended final AsyncResponse response) throws InterruptedException {
// Should never run
AsyncTimeoutExceptionsSticker sticker = new AsyncTimeoutExceptionsSticker();
sticker.setName("turtle");
return sticker;
}
@GET
@Path("/sticker3")
@Produces("application/xml")
public AsyncTimeoutExceptionsSticker sticker3(@Suspended final AsyncResponse response) throws InterruptedException {
AsyncTimeoutExceptionsSticker sticker = new AsyncTimeoutExceptionsSticker();
new Thread() {
public void run() {
try {
sleep(10000);
AsyncTimeoutExceptionsSticker sticker = new AsyncTimeoutExceptionsSticker();
sticker.setName("turtle");
} catch (InterruptedException e) {
logger.error("Sleep was interrupted", e);
}
}
}.start();
return sticker;
}
@GET
@Path("/get")
public Response get() throws InterruptedException {
Thread.sleep(10000);
return Response.ok().build();
}
@GET
@Path("/getPositive")
public Response getPositive() {
return Response.ok().build();
}
}