| Summary: | ProfileChangeOperation#getProfileChangeRequest returns non-API type | ||
|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Pascal Rapicault <pascal> |
| Component: | p2 | Assignee: | Pascal Rapicault <pascal> |
| Status: | CLOSED DUPLICATE | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | dj.houghton, irbull, jeffmcaffer, john.arthorne, kane.mx, kane.zhu, Olivier_Thomann, tjwatson |
| Version: | 3.6 | ||
| Target Milestone: | 3.7 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Pascal Rapicault
Thinking more about it, this case is more subtle than other cases where the method parameter is an internal type. In this case a client could have this code: IProfileChangeRequest req = operation.getProfileChangeRequest(); They are not referencing any internals here, and would not require any change in their source code if the return type was fixed. But, if the method signature changes then the byte code of the referring type will need fixing - i.e., it's a binary incompatible change. This can cause subtle bugs because for example if their source is unchanged then they might not contribute new bits to the build for RC4, and would release broken code without noticing it. So, if it was up to me I would just fix it in 3.7 where clients have more time to react to the change. waiting is ok with me as well. Taking that into account, I think it is actually worse in 3.7 because it will force us to have to bump our major version number. am I correct about version bumping? The API tools will indicate a major version increment is required for any breaking change like this. In practice, we have a few API "bugs" like this every year that we fix without incrementing the major version number. They are usually just documented in the migration guide, and then an API filter is added to avoid the warning in the build. This has already been fixed. *** This bug has been marked as a duplicate of bug 326914 *** |