Consistently throw IllegalStateException from getAutowireCapableBeanFactory()

Issue: SPR-12932
This commit is contained in:
Juergen Hoeller
2015-04-24 23:20:43 +02:00
parent 91e46cf2ad
commit 706d3adf07
2 changed files with 42 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,4 +55,34 @@ public class GenericApplicationContextTests {
}
}
@Test
public void accessAfterClosing() {
GenericApplicationContext ac = new GenericApplicationContext();
ac.registerBeanDefinition("testBean", new RootBeanDefinition(String.class));
ac.refresh();
assertSame(ac.getBean("testBean"), ac.getBean(String.class));
assertSame(ac.getAutowireCapableBeanFactory().getBean("testBean"),
ac.getAutowireCapableBeanFactory().getBean(String.class));
ac.close();
try {
assertSame(ac.getBean("testBean"), ac.getBean(String.class));
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
try {
assertSame(ac.getAutowireCapableBeanFactory().getBean("testBean"),
ac.getAutowireCapableBeanFactory().getBean(String.class));
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
}
}