This is running IDEA build 7905--I don't know if my problem is build-specific, if so, I'll move this to the EAP forum.
We have an implementation of javax.servlet.jsp.PageContext which compiles (via Maven) using the servlet API version 2.3. When I try to compile via IDEA, I'm getting a compiler error that we're not implementing an overloaded version of the include() method, which was added to the API in version 2.4.
In my dependency list for the module in question, only servlet API 2.3 is included (e.g. that's the only jar that contains this class)--I also moved this to the top of the dependency list to make sure. In the editor, if I open our PageContext impl and navigate to the superclass, sure enough it opens the PageContent in the 2.3 jar. The editor also doesn't show any errors related to the missing method. There's apparently a conflict between what the compiler thinks the classpath is and what the editor thinks it is.
I removed the web facet from the module in question just in case that was pulling in javaee.jar or something.
I'm not sure where javac is picking up this other version from--is there a way I can see the classpath that's being provided to the compiler?