1
2
3
4
5
6
7
8
9
10
11 package org.mule;
12
13 import org.mule.api.ThreadSafeAccess;
14 import org.mule.api.context.MuleContextBuilder;
15 import org.mule.config.DefaultMuleConfiguration;
16 import org.mule.transport.DefaultMessageAdapter;
17
18 public class ThreadUnsafeAccessTestCase extends AbstractThreadSafeAccessTestCase
19 {
20 private boolean messageScribblingState;
21
22
23 protected void doTearDown() throws Exception
24 {
25 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(messageScribblingState);
26 super.doTearDown();
27 }
28
29
30 protected void configureMuleContext(MuleContextBuilder contextBuilder)
31 {
32 super.configureMuleContext(contextBuilder);
33
34
35
36
37 messageScribblingState = ThreadSafeAccess.AccessControl.isFailOnMessageScribbling();
38
39 DefaultMuleConfiguration config = new DefaultMuleConfiguration();
40 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(false);
41 contextBuilder.setMuleConfiguration(config);
42 }
43
44 public void testDisable() throws InterruptedException
45 {
46 assertFalse(ThreadSafeAccess.AccessControl.isFailOnMessageScribbling());
47 ThreadSafeAccess target = new DefaultMessageAdapter(new Object());
48 newThread(target, false, new boolean[]{true, true, false, true});
49 newThread(target, false, new boolean[]{false});
50 newThread(target, false, new boolean[]{true});
51 }
52 }