This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 428381 - [BETA_JAVA8] Should org.eclipse.jdt.junit be included in 4.3.2 patch?
Summary: [BETA_JAVA8] Should org.eclipse.jdt.junit be included in 4.3.2 patch?
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: BETA J8   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-17 17:18 EST by David Williams CLA
Modified: 2014-02-21 06:19 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2014-02-17 17:18:52 EST
I'm opening this bug to continue/finish the discussion from 

bug 426543 comment 19 +/- a few comments.

Even in the most recent X-build 

http://build.eclipse.org/eclipse/builds/4X/siteDir/eclipse/downloads/drops4/X20140217-0938/

... which uses latest compiler, version
3.9.2.v20140216-2054

The same JUnitStubUtility.class shows up as different, as a result of using the new Beta Java 8 compiler. 

http://build.eclipse.org/eclipse/builds/4X/siteDir/eclipse/downloads/drops4/X20140217-0938/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt

So, the alternatives are: 

A. The difference is actually a bug in JDT compiler? 
-- in this case, org.eclipse.jdt.junit does not need to be included in the patch, and the compiler just needs to be fixed. 

B. The difference is an intentional, important change produced by the JDT compiler. 
-- In this case, the version of the org.eclipse.jdt.junit bundle should be increased, and it should be included in the "patch feature". 

C. It's just noise and really does not effect functioning of that "JUnitStubUtility" class. 
-- In this case, it could go either way. Functionally, it would not have to be included, but my preference would be to go ahead and do "B" above, just to be sure all our byte codes match what the compiler produces.
Comment 1 David Williams CLA 2014-02-17 17:32:37 EST
(And, just in case not clear, an "X-build" is rebuilding the entire 4.3.2 build, except with BETA_JAVA8 branch for those repositories that differ from R4_3_maintenance. 

eclipse.jdt.core: BETA_JAVA8
eclipse.jdt.debug: BETA_JAVA8
eclipse.jdt: BETA_JAVA8
eclipse.jdt.ui: BETA_JAVA8
eclipse.pde.ui: BETA_JAVA8
Comment 2 David Williams CLA 2014-02-17 23:16:33 EST
Now that I look back at original bug 42654 comment 22, I think the answer is "yes, org.eclipse.jdt.junit should be included in the 4.3.2 patch build". That is, Markus says 

"For JUnitStubUtility in X20140130-0132, I can definitely say: No problem. Classfile difference is expected (bundle didn't increase version number, but a referenced int constant changed its value)."

Which, I think also implies that in the BETA_JAVA8 branch we want to at least "touch" that bundle (so its qualifier increases) if not increase its service field?)
Comment 3 Markus Keller CLA 2014-02-18 06:47:58 EST
Yes, it's between B and C. The compiler is correct and the comparator found a valid difference. However, in practice the difference doesn't matter, since the (possibly recovered) JLS4 AST should be good enough for this particular use case.

Technically, the bundle version should be increased, and I've bumped org.eclipse.jdt.junit to 3.7.201 now: http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/commit/?id=4988ad3c788e93ca19b3122ab83395056ee445e3
Comment 4 David Williams CLA 2014-02-18 07:52:12 EST
Markus, best thing to happen to me all week (that I don't have to add it to patches) ... though remember, the difference we are seeing is against "Kepler 4.3.2", and there are no more builds planned for what we release.
Comment 5 Markus Keller CLA 2014-02-18 08:02:03 EST
(In reply to David Williams from comment #4)
> ... though remember, the difference we are seeing is against
> "Kepler 4.3.2", and there are no more builds planned for what we release.

Yes, that's fine. Kepler 4.3.2 doesn't need any change. In BETA_JAVA8, the junit bundle refers to an internal constant that has been changed in o.e.jdt.ui (which has been branched in BETA_JAVA8). Therefore, o.e.jdt.junit also needs a version upgrade in BETA_JAVA8 (since the Kepler 4.3.2 version still has the old value of the constant inlined).
Comment 6 David Williams CLA 2014-02-18 08:28:01 EST
(In reply to Markus Keller from comment #5)
> (In reply to David Williams from comment #4)
> > ... though remember, the difference we are seeing is against
> > "Kepler 4.3.2", and there are no more builds planned for what we release.
> 
> Yes, that's fine. Kepler 4.3.2 doesn't need any change. In BETA_JAVA8, the
> junit bundle refers to an internal constant that has been changed in
> o.e.jdt.ui (which has been branched in BETA_JAVA8). Therefore, o.e.jdt.junit
> also needs a version upgrade in BETA_JAVA8 (since the Kepler 4.3.2 version
> still has the old value of the constant inlined).

Hmm, now it sounds like you are saying it should go in the patch? 

The only bundles that "go into" the patch featues are listed in 

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/java8patch/pom.xml?h=BETA_JAVA8

It doesn't matter what's in the branch, per se, we need to name them. 

So, either needs to be named, and go in the patch ... or else you are saying "the function doesn't really matter ... close enough for patched version of 4.3.2".
Comment 7 Markus Keller CLA 2014-02-18 09:28:43 EST
(In reply to David Williams from comment #6)
> Hmm, now it sounds like you are saying it should go in the patch? 

Yes, org.eclipse.jdt.junit should be in the BETA_JAVA8 patch. Could you please add it to java8patch/pom.xml then?

The unpatched version would also work, but it's cleaner this way, and we can get rid of the comparator problem.

And could you also add org.eclipse.jdt.junit.core? We have some changes in that bundle in master, which I will soon merge into BETA_JAVA8.
Comment 9 David Williams CLA 2014-02-18 15:37:27 EST
(In reply to David Williams from comment #8)
> Done. 
> 
> http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/
> commit/?h=BETA_JAVA8&id=079d3d70c83db40327cc1b7c4cc6daa89b40c781

FYI ... test build went ok (whew) ... next official patch build at 4.
Comment 10 Jay Arthanareeswaran CLA 2014-02-21 04:05:01 EST
(In reply to David Williams from comment #9)
> FYI ... test build went ok (whew) ... next official patch build at 4.

David, should there a newer build available here? I am not finding anything after X20140217-0938.

http://build.eclipse.org/eclipse/builds/4X/siteDir/eclipse/downloads/drops4/
Comment 11 Jay Arthanareeswaran CLA 2014-02-21 04:08:33 EST
(In reply to Jayaprakash Arthanareeswaran from comment #10)
> (In reply to David Williams from comment #9)
> > FYI ... test build went ok (whew) ... next official patch build at 4.
> http://build.eclipse.org/eclipse/builds/4X/siteDir/eclipse/downloads/drops4/

Sorry, never mind. I should be looking at the 4P siteDir, right?
Comment 12 Noopur Gupta CLA 2014-02-21 04:27:43 EST
Verified for Eclipse + Java 8 RC1 using Kepler SR2(RC4) +   
Eclipse Java Development Tools Patch for Java 8 Support (BETA)	
1.0.0.v20140220-2054.

The update site contains the JUnit bundles:
http://build.eclipse.org/eclipse/builds/4P/siteDir/updates/4.3-P-builds/P20140220-1600/plugins/
Comment 13 David Williams CLA 2014-02-21 06:05:30 EST
(In reply to Jayaprakash Arthanareeswaran from comment #11)
> (In reply to Jayaprakash Arthanareeswaran from comment #10)
> > (In reply to David Williams from comment #9)
> > > FYI ... test build went ok (whew) ... next official patch build at 4.
> > http://build.eclipse.org/eclipse/builds/4X/siteDir/eclipse/downloads/drops4/
> 
> Sorry, never mind. I should be looking at the 4P siteDir, right?

Right. The patch builds are done daily. The X-builds are done once a week, on Monday, and Y-builds on Tuesday. 

I've put some of this on 

http://wiki.eclipse.org/Platform-releng/Platform_Build_BETA_JAVA8_Branch

I could add to 
http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
if you think enough people need to know and enough of them look at buildSchedule. 

Thanks.
Comment 14 Jay Arthanareeswaran CLA 2014-02-21 06:19:49 EST
(In reply to David Williams from comment #13)
> I could add to 
> http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
> if you think enough people need to know and enough of them look at
> buildSchedule. 

For me, it's good enough that it's part of the wiki page you mentioned. Thanks.