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
17 import org.junit.Test;
18
19 import static org.junit.Assert.assertFalse;
20
21 public class ThreadUnsafeAccessTestCase extends AbstractThreadSafeAccessTestCase
22 {
23 private boolean messageScribblingState;
24
25 @Override
26 protected void doTearDown() throws Exception
27 {
28 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(messageScribblingState);
29 super.doTearDown();
30 }
31
32 @Override
33 protected void configureMuleContext(MuleContextBuilder contextBuilder)
34 {
35 super.configureMuleContext(contextBuilder);
36
37
38
39
40 messageScribblingState = ThreadSafeAccess.AccessControl.isFailOnMessageScribbling();
41
42 DefaultMuleConfiguration config = new DefaultMuleConfiguration();
43 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(false);
44 contextBuilder.setMuleConfiguration(config);
45 }
46
47 @Test
48 public void testDisable() throws InterruptedException
49 {
50 assertFalse(ThreadSafeAccess.AccessControl.isFailOnMessageScribbling());
51 ThreadSafeAccess target = new DefaultMuleMessage(new Object(), muleContext);
52 newThread(target, false, new boolean[]{true, true, false, true});
53 newThread(target, false, new boolean[]{false});
54 newThread(target, false, new boolean[]{true});
55 }
56 }