1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport;
12
13 import org.mule.RequestContext;
14 import org.mule.api.MuleException;
15
16 import javax.resource.spi.work.Work;
17
18 public class PollingReceiverWorker implements Work
19 {
20 protected final AbstractPollingMessageReceiver receiver;
21 protected volatile boolean running = false;
22
23 public PollingReceiverWorker(AbstractPollingMessageReceiver pollingMessageReceiver)
24 {
25 super();
26 receiver = pollingMessageReceiver;
27 }
28
29 public AbstractPollingMessageReceiver getReceiver()
30 {
31 return receiver;
32 }
33
34 public boolean isRunning()
35 {
36 return running;
37 }
38
39
40
41 public void run()
42 {
43
44 RequestContext.clear();
45 if (receiver.isStarted())
46 {
47 running = true;
48 try
49 {
50
51 receiver.connected.whenTrue(null);
52 receiver.poll();
53 }
54 catch (InterruptedException e)
55 {
56
57 try
58 {
59 receiver.stop();
60 }
61 catch (MuleException e1)
62 {
63 receiver.getConnector().getMuleContext().getExceptionListener().handleException(e1);
64 }
65 }
66 catch (Exception e)
67 {
68 receiver.getConnector().getMuleContext().getExceptionListener().handleException(e);
69 }
70 finally
71 {
72 running = false;
73 }
74 }
75 }
76
77 public void release()
78 {
79
80 }
81
82 }