Salut,
the olympic already started and I just won't the gold medal for breaking
API :-) I've filled
https://grizzly.dev.java.net/issues/show_bug.cgi?id=207
and brings back the previous behavior.
Hopefully no more medal for me...
A+
-- Jeanfrancois
Mark Hig wrote:
> Hi all.
> Hoping you can help. I am developing an Asyncronous server based on Brian
> McAllisters example asynchronous server
> (http://kasparov.skife.org/blog/src/java/grizzly-arp-basic.html). Since
> upgrading to 1.8.3 I am getting the following error in the following code:
>
> public boolean doFilter(final AsyncExecutor executor)
> {
> final AsyncTask asyncTask = executor.getAsyncTask();
> final AsyncHandler asyncHandler = executor.getAsyncHandler();
>
> final DefaultProcessorTask processorTask = (DefaultProcessorTask)
> executor.getProcessorTask();
> //final DefaultProcessorTask processorTask = (DefaultProcessorTask)
> executor.getAsyncTask().getProcessorTask();
>
>
> if (CALLBACK_KEY == null)
> {
> throw new GrizzlyServiceException("Grizzly OSRServerAsyncFilter
> cannot run the filter without the callback object being set for Asynchronous
> operation.");
> }
>
> //This handles the callback from the disconnected task
> processorTask.getRequest().setAttribute(CALLBACK_KEY, new Runnable()
> {
> public void run()
> {
> System.out.println("------->Running async task " + this);
> asyncHandler.handle(asyncTask);
> }
> });
>
> //This puts the processorTask(Connection info) into the request
> object for later use.
>
> processorTask.getRequest().setAttribute(PROCESSOR_TASK_KEY,processorTask);
> processorTask.invokeAdapter();
>
> return false;
> }
>
>
>
> java.lang.ClassCastException: com.sun.grizzly.arp.AsyncProcessorTask cannot
> be cast to com.sun.grizzly.http.ProcessorTask
> at
> com.sun.grizzly.arp.DefaultAsyncHandler.handle(DefaultAsyncHandler.java:144)
> at test.osr.OSRAsyncFilter$1.run(OSRAsyncFilter.java:60)
> at test.osr.adapter.IConnectionAdapter.write(IConnectionAdapter.java:160)
> at
> com.fujitsu.poa.bal.osr.sif.StringBufferedResponse.writeToConnection(StringBufferedResponse.java:49)
> at
> com.fujitsu.poa.bal.osr.sif.OSRBALResponse.sendResponseToSource(OSRBALResponse.java:161)
> at
> com.fujitsu.poa.bal.osr.sif.SyncRoutingStrategy.routeService(SyncRoutingStrategy.java:63)
> at
> com.fujitsu.poa.balf.sif.SwitchableDefaultServiceRouter.routeService(SwitchableDefaultServiceRouter.java:58)
> at
> com.fujitsu.poa.bal.osr.sif.SIFContainerNew.routeRequestService(SIFContainerNew.java:149)
> at com.fujitsu.poa.bal.osr.event.RequestEvent.run(RequestEvent.java:62)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
>
>
> It looks like the AsyncHandler on the callbacl to complete the Grizzly
> processing is now expecting a different object type of DefaultProcessorTask
> raher than the AsyncTask it used to accept.
>
> Any help will be appreciated.
>
> Thanks
>
> Mark.