Summary: | Project no longer compiles due to indirect reference error | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Yen Lu <yenlu> | ||||
Component: | Core | Assignee: | Kent Johnson <kent_johnson> | ||||
Status: | VERIFIED NOT_ECLIPSE | QA Contact: | |||||
Severity: | major | ||||||
Priority: | P3 | CC: | daniel_megert, jarthana, Olivier_Thomann, srikanth_sankaran | ||||
Version: | 3.5 | ||||||
Target Milestone: | 3.5 M7 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Yen Lu
2009-03-24 15:52:03 EDT
Created attachment 129750 [details]
Java source files
websphere_apis.jar is too large to attach in this bugzilla. This error is often caused by not having all the required jars on the classpath of the project. I'll try to track down the bug that was fixed in the compiler for 3.5M6, which is now causing us to search for the missing type & jar file. Just to let you know - when this has happened in the past, the fix for the bug is necessary & users need to add the additional jar files to their classpath. Is there some reason the jar file cannot be added ? Hi, This class was not necessary for successfully compiling these applications in the past. Our aim is to provide the minimal set of classes necessary to compile the application. Why would this be necessary now? As I said, we have likely fixed a bug in the compiler which now requires us to search or resolve types that we didn't in the past. I'll try to track down exactly which bug is affecting your case, but is there some reason this missing jar file cannot be added to your classpath ? The main reason we cannot simply add this jar file to the user's build path is that there isn't one - at least not one that is small enough to include. We would have to perform our static analysis again to determine if it is as simple as adding this single class or if other classes are needed to ensure this error goes away. So you're able to run your app without this jar file on the runtime patch ? And no other projects in your workspace include it on their classpath ? When we run our application, it runs on the WebSphere application server. A bigger set of jars is used at runtime. websphere_apis.jar is purely for compilation purposes only. Our customers use this jar only when a WebSphere application server is not available on their local system. So websphere_apis.jar is supposed to include every .class file needed to compile your project, but it doesn't include com.ibm.wsspi.webservices.rpc.handler.soap.SOAPMessageContext - correct ? But it does include some .class files with references to SOAPMessageContext & likely other missing .class files. How is websphere_apis.jar constructed ? Kent, I sent you an email with more details. Reproduced with this simple case & the websphere_apis.jar on the classpath : public class X extends com.ibm.ws.webservices.engine.client.Stub { void test(com.ibm.ws.webservices.engine.MessageContext mc) { super.primeMessageContext(mc); } } The fix for bug 206930 requires the compiler to check the hierarchy of any method parameter type to see if its a raw type (only when 1.5 compliance is set). The problem with your constructed API jar file is the type MessageContext, which is the declared parameter type of the method Stub.primeMessageContext() implements the missing interface SOAPMessageContext. You need to ensure that the hierarchy of every type in the API jar is complete. Verified for 3.5M7 |