1
2
3
4
5
6
7 package org.mule;
8
9 import org.mule.api.ThreadSafeAccess;
10 import org.mule.api.context.MuleContextBuilder;
11 import org.mule.config.DefaultMuleConfiguration;
12
13 import org.junit.Test;
14
15 import static org.junit.Assert.assertFalse;
16
17 public class ThreadUnsafeAccessTestCase extends AbstractThreadSafeAccessTestCase
18 {
19 private boolean messageScribblingState;
20
21 @Override
22 protected void doTearDown() throws Exception
23 {
24 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(messageScribblingState);
25 super.doTearDown();
26 }
27
28 @Override
29 protected void configureMuleContext(MuleContextBuilder contextBuilder)
30 {
31 super.configureMuleContext(contextBuilder);
32
33
34
35
36 messageScribblingState = ThreadSafeAccess.AccessControl.isFailOnMessageScribbling();
37
38 DefaultMuleConfiguration config = new DefaultMuleConfiguration();
39 ThreadSafeAccess.AccessControl.setFailOnMessageScribbling(false);
40 contextBuilder.setMuleConfiguration(config);
41 }
42
43 @Test
44 public void testDisable() throws InterruptedException
45 {
46 assertFalse(ThreadSafeAccess.AccessControl.isFailOnMessageScribbling());
47 ThreadSafeAccess target = new DefaultMuleMessage(new Object(), muleContext);
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 }