package org.jboss.resteasy.test.asynch.resource; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; import javax.ws.rs.container.AsyncResponse; @Path("resource") public class CallbackResource extends CallbackResourceBase { @GET @Path("register") public String registerObject(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); boolean b = async.register(new CallbackSettingCompletionCallback()).isEmpty(); addResponse(async, stage); return b ? TRUE : FALSE; } @GET @Path("registerclass") public String registerClass(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); boolean b = async.register(CallbackSettingCompletionCallback.class).isEmpty(); addResponse(async, stage); return b ? TRUE : FALSE; } @GET @Path("registerobjects") public String registerObjectObject(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); boolean b = async.register(new CallbackSettingCompletionCallback(), new CallbackSecondSettingCompletionCallback()).isEmpty(); addResponse(async, stage); return b ? TRUE : FALSE; } @GET @Path("registerclasses") public String registerClasses(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); boolean b = async.register(CallbackSettingCompletionCallback.class, CallbackSecondSettingCompletionCallback.class).isEmpty(); addResponse(async, stage); return b ? TRUE : FALSE; } @GET @Path("registerthrows") public String registerObjectThrowsNpe(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { CallbackSettingCompletionCallback callback = null; async.register(callback); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("registerclassthrows") public String registerClassThrowsNpe(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { Class<CallbackSettingCompletionCallback> callback = null; async.register(callback); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("registerobjectsthrows1") public String registerObjectsThrowsNpe1(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { CallbackSettingCompletionCallback callback = null; async.register(callback, new CallbackSecondSettingCompletionCallback()); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("registerobjectsthrows2") public String registerObjectsThrowsNpe2(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { CallbackSecondSettingCompletionCallback callback = null; async.register(new CallbackSettingCompletionCallback(), callback); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("registerclassesthrows1") public String registerClassesThrowsNpe1(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { Class<CallbackSettingCompletionCallback> callback = null; async.register(callback, CallbackSecondSettingCompletionCallback.class); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("registerclassesthrows2") public String registerClassesThrowsNpe2(@QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); try { Class<CallbackSecondSettingCompletionCallback> callback = null; async.register(CallbackSettingCompletionCallback.class, callback); } catch (NullPointerException e) { return TRUE; } catch (Exception e) { return "Threw " + e.getClass().getName(); } return FALSE; } @GET @Path("exception") public String throwExceptionOnAsyncResponse( @QueryParam("stage") String stage) { AsyncResponse async = takeAsyncResponse(stage); boolean b = async.resume(new CallbackExceptionThrowingStringBean( "throw exception")); addResponse(async, stage); return b ? TRUE : FALSE; } @GET @Path("error") public String getErrorValue() { String name = CallbackSettingCompletionCallback.getLastThrowableName(); return name; } @GET @Path("seconderror") public String getSecondErrorValue() { String name = CallbackSecondSettingCompletionCallback.getLastThrowableName(); return name; } @GET @Path("reset") public void resetErrorValue() { CallbackSettingCompletionCallback.resetLastThrowableName(); CallbackSecondSettingCompletionCallback.resetLastThrowableName(); } }