Monday Feb 28, 2011

OpenJDK 6: A changing of the guard

The first public source drop of OpenJDK 6 went out just over three years ago. I've been the release manager for the project for all that time and for the preceding six months while the effort was incubating inside of Sun. Somewhat later than anticipated at the start, all initial goals for the project have long been met, with a public master code repository worked on by both the internal and external community members and a code base that can be used to build a fully compatible implementation of Java SE 6. Combined with the IcedTea 6 set of patches and additions, the code from OpenJDK 6 is used to build the JDK packaged with many Linux distributions.

However, to have more time to spend on other projects, effective immediately I've turned over release management responsibilities for OpenJDK 6 to my colleague Kelly O'Hair. Kelly has considerable experience with JDK development in general and OpenJDK 6 in particular. Kelly has made major contributions to OpenJDK 6 throughout all phases of the project, starting from its inception, to the synthesis of its public Mercurial repositories with history information, to the recent purging of the despised binary plugs.

While I have some sadness in relinquishing leadership of the project, I'm happy to be leaving OpenJDK 6 release management in Kelly's capable hands.

OpenJDK 6: b22 regression test results

Running with the jtreg flags, "-a -ignore:quiet -ea -esa" in all repositories, using generally accessible hosts for the network configuration file, and adding "-s" for langtools, the basic regression test results on Linux for OpenJDK 6 build 22 are:

  • HotSpot, 97 tests passed and 1 failed.

  • Langtools, 1,391 tests passed.

  • JDK, 3,300 tests pass, 30 fail, and 3 have errors.

The preponderance of changes in b22 were for security fixes; the hotspot and langtools tests results are identical to b21:

0: b21-hotspot/summary.txt  pass: 97; fail: 1
1: b22-hotspot/summary.txt  pass: 97; fail: 1

No differences
0: b21-langtools/summary.txt  pass: 1,391
1: b22-langtools/summary.txt  pass: 1,391

No differences

And in jdk, the results were nearly identical:

0: b21-jdka/summary.txt  pass: 3,295; fail: 33; error: 4
1: b22-jdk/summary.txt   pass: 3,300; fail: 30; error: 3

0      1      Test
error  pass   com/sun/jdi/DoubleAgentTest.java
fail   pass   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java
fail   pass   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java
fail   pass   java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java
---    pass   tools/launcher/LibraryPath.java

5 differences

(The b21 baseline for the jdk repository was the test run where assertions where enabled.

OpenJDK 6 b22 Source Bundle Published

On February 28, 2011 the source bundle for OpenJDK 6 b22 was published.

The main changes in b22 are the latest round of security updates; in addition, there are a few copyright and licensing fixes. A detailed list of all the changes in b22 is also available.

Tuesday Feb 08, 2011

FOSDEM 2011: OpenJDK 6 and Project Coin

At FOSDEM last weekend, I gave two presentations, one on OpenJDK 6 and the other on Project Coin.

In "The State of OpenJDK 6," after providing some historical context, I discussed various upcoming changes. As relayed elsewhere, Kelly O'Hair will be assisting in OpenJDK 6 release management and security fixes to OpenJDK 6 from Oracle will continue through the end-of-life of the JDK 6 train, which per Oracle policy will occur no sooner than July 2012 (one year after JDK 7 ships GA). Also of note, after JDK 7 ships GA, Oracle will continue development of the 7 update releases in the open, similar to how it has been done pre-GA. In particular, there will not be the same dichotomy between the OpenJDK 7 code base and the 7 update code base as there is between OpenJDK 6 and the 6 update train.

I prepared some additional slides about OpenJDK 6, but did not present them due to time considerations. In the backup portion of slide deck, slide 13 graphs that since b11 the majority of fixes pushed into OpenJDK 6 have been HotSpot changes with the corba, jaxp, and jaxws areas clearly in maintenance. Slides 15 and 16 cover OpenJDK 6 regression test results since b11. There has been a growing number of tests and the overall pass rate is high and generally increasing; langtools and hotspot recently typically have a 100% pass rate and the pass rate for the jdk repository has risen from 98% to 99%.

For Project Coin, I presented the current state the language changes, discussed the development of changes, and spoke briefly on some aspects of developing the changes in the open.

All in all, another fun year at FOSDEM; next time, I hope I'm less afflicted with jet lag!

Friday Jan 21, 2011

OpenJDK 6: b21 regression test results

Running with the usual jtreg flags, "-a -ignore:quiet" in all repositories, using generally accessible hosts for the network configuration file, and adding "-s -ea -esa" for langtools, the basic regression test results on Linux for OpenJDK 6 build 21 are:

  • HotSpot, 97 tests passed and 1 failed.

  • Langtools, 1,391 tests passed.

  • JDK, 3,300 tests pass, 29 fail, and 3 have errors.

More HotSpot tests were added and all but one pass; the new failing test is improperly platform-specific:

0: b20-hotspot/summary.txt  pass: 85
1: b21-hotspot/summary.txt  pass: 97; fail: 1

0      1      Test
---    pass   compiler/6431242/Test.java
---    pass   compiler/6894807/IsInstanceTest.java
---    pass   compiler/6932496/Test6932496.java
---    pass   compiler/6946040/TestCharShortByteSwap.java
---    pass   compiler/6958485/Test.java
---    pass   compiler/6973329/Test.java
---    pass   compiler/6982370/Test6982370.java
---    pass   compiler/7002666/Test7002666.java
---    pass   gc/6581734/Test6581734.java
---    pass   runtime/6626217/Test6626217.sh
---    pass   runtime/6888954/vmerrors.sh
---    pass   runtime/6925573/SortMethodsTest.java
---    fail   runtime/6929067/Test6929067.sh

13 differences

In langtools some tests were added and all the tests continue to pass:

0: b20-langtools/summary.txt  pass: 1,365
1: b21-langtools/summary.txt  pass: 1,391

0      1      Test
---    pass   tools/javac/6508981/TestInferBinaryName.java
---    pass   tools/javac/6734819/T6734819a.java
---    pass   tools/javac/6734819/T6734819b.java
---    pass   tools/javac/6734819/T6734819c.java
---    pass   tools/javac/6889255/T6889255.java
---    pass   tools/javac/T6595666.java
---    pass   tools/javac/T6625520.java
---    pass   tools/javac/T6705935.java
---    pass   tools/javac/T6956638.java
---    pass   tools/javac/api/6411310/Test.java
---    pass   tools/javac/api/6440333/T6440333.java
---    pass   tools/javac/api/6733837/T6733837.java
---    pass   tools/javac/api/Sibling.java
---    pass   tools/javac/api/T6483788.java
---    pass   tools/javac/api/T6501502.java
---    pass   tools/javac/api/T6838467.java
---    pass   tools/javac/api/T6877206.java
pass   ---    tools/javac/policy/Test.java
pass   ---    tools/javac/policy/Test.java#id1
pass   ---    tools/javac/policy/Test.java#id2
pass   ---    tools/javac/policy/Test.java#id3
pass   ---    tools/javac/policy/Test.java#id4
pass   ---    tools/javac/policy/Test.java#id5
pass   ---    tools/javac/policy/Test.java#id6
pass   ---    tools/javac/policy/Test.java#id7
---    pass   tools/javac/policy/test1/Test1a.java
---    pass   tools/javac/policy/test1/Test1a.java#id1
---    pass   tools/javac/policy/test1/Test1a.java#id2
---    pass   tools/javac/policy/test1/Test1a.java#id3
---    pass   tools/javac/policy/test1/Test1a.java#id4
---    pass   tools/javac/policy/test1/Test1a.java#id5
---    pass   tools/javac/policy/test1/Test1a.java#id6
---    pass   tools/javac/policy/test1/Test1a.java#id7
---    pass   tools/javac/policy/test1/Test1b.java
---    pass   tools/javac/policy/test1/Test1b.java#id1
---    pass   tools/javac/policy/test1/Test1b.java#id2
---    pass   tools/javac/policy/test1/Test1b.java#id3
---    pass   tools/javac/policy/test2/Test.java
---    pass   tools/javac/policy/test2/Test.java#id1
---    pass   tools/javac/policy/test2/Test.java#id2
---    pass   tools/javac/policy/test2/Test.java#id3
---    pass   tools/javac/policy/test3/Test.java

42 differences

And in jdk, a small percentage of tests were added and the existing tests have generally consistent results:

0: b20-jdk/summary.txt  pass: 3,273; fail: 33; error: 2
1: b21-jdk/summary.txt  pass: 3,300; fail: 29; error: 3

0      1      Test
---    pass   com/sun/java/swing/plaf/gtk/Test6963870.java
fail   pass   java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java
---    pass   java/awt/Frame/FrameSize/TestFrameSize.java
fail   pass   java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java
fail   pass   java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java
fail   pass   java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html
---    pass   java/awt/font/TextLayout/TestSinhalaChar.java
pass   error  java/lang/management/MemoryMXBean/CollectionUsageThresholdConcMarkSweepGC.sh
---    pass   java/math/BigDecimal/MultiplyTests.java
pass   fail   java/net/InetAddress/IPv4Formats.java
pass   fail   java/net/URL/OpenStream.java
pass   fail   java/net/URLClassLoader/ClassLoad.java
pass   fail   java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java
---    pass   java/util/logging/AnonLoggerWeakRefLeak.sh
---    pass   java/util/logging/LoggerWeakRefLeak.sh
---    pass   javax/imageio/plugins/png/ITXtTest.java
---    pass   javax/imageio/plugins/png/ItxtUtf8Test.java
---    pass   javax/swing/JPopupMenu/6675802/bug6675802.java
---    pass   javax/swing/JPopupMenu/6691503/bug6691503.java
---    pass   javax/swing/Security/6938813/bug6938813.java
---    pass   javax/swing/UIDefaults/6622002/bug6622002.java
---    pass   javax/swing/UIDefaults/6795356/SwingLazyValueTest.java
---    pass   javax/swing/UIDefaults/6795356/TableTest.java
---    pass   javax/swing/UIDefaults/6795356/bug6795356.java
fail   pass   javax/swing/plaf/synth/Test6933784.java
fail   pass   sun/nio/cs/Test4200310.sh
---    pass   sun/security/pkcs11/SecureRandom/TestDeserialization.java
---    pass   sun/security/pkcs11/Signature/TestRSAKeyLength.java
---    pass   sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java
---    fail   sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java
---    pass   sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java
---    pass   sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java
---    pass   sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java
---    pass   sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
fail   pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java
fail   pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java
fail   pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java
fail   pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java
pass   fail   sun/security/validator/CertReplace.java
---    pass   sun/tools/common/CommonTests.sh

40 differences

In addition to the basic results, the hotspot and jdk regression test suites were rerun with assertions and system assertions enabled, -ea -esa. (The langtools tests are already run with assertions enabled.) The results for hotspot were identical to running without assertions; in jdk a few additional tests failed:


0: b21-jdk/summary.txt   pass: 3,300; fail: 29; error: 3
1: b21-jdka/summary.txt  pass: 3,295; fail: 33; error: 4

0      1      Test
pass   error  com/sun/jdi/DoubleAgentTest.java
pass   fail   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java
pass   fail   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java
pass   fail   java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java
fail   pass   java/awt/xembed/server/RunTestXEmbed.java
pass   fail   java/net/Authenticator/B4769350.java
pass   fail   java/net/CookieHandler/TestHttpCookie.java
fail   pass   java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java
pass   fail   java/util/ResourceBundle/Test4300693.java

9 differences

Going forward, the baseline regression test results for all OpenJDK 6 repositories will be reported with assertions and system assertions enabled.

OpenJDK 6 b21 Source Bundle Published

On January 21, 2011 the source bundle for OpenJDK 6 b21 was published.

Major changes include the latest round of security fixes and, courtesy Andrew John Hughes, syncing in HotSpot 19. In addition, jaxp was upgraded to 1.4.4, Kelly removed the binary plug logic, some stray rebranding issues were corrected, Jon Gibbons backported a set of JavaFileManager fixes from JDK 7, and the usual sorts of small backports of fixes from JDK 7 occurred too.

A detailed list of all the changes in b21 is also available.

Monday Jun 21, 2010

OpenJDK 6: b20 regression test results

Running with the usual jtreg flags, "-a -ignore:quiet" in all repositories and adding "-s -ea -esa" for langtools, the basic regression test results on Linux for OpenJDK 6 build 20 are:

  • HotSpot, 85 tests passed.

  • Langtools, 1,365 tests passed.

  • JDK, 3,273 tests pass, 33 fail, and 2 have errors.

All the HotSpot tests continue to pass and more tests were added:

0: b19-hotspot/summary.txt  pass: 62
1: b20-hotspot/summary.txt  pass: 85

0      1      Test
---    pass   compiler/6663854/Test6663854.java
---    pass   compiler/6769124/TestArrayCopy6769124.java
---    pass   compiler/6769124/TestDeoptInt6769124.java
---    pass   compiler/6769124/TestUnalignedLoad6769124.java
---    pass   compiler/6792161/Test6792161.java
---    pass   compiler/6866651/Test.java
---    pass   compiler/6877254/Test.java
---    pass   compiler/6879902/Test6879902.java
---    pass   compiler/6880034/Test6880034.java
---    pass   compiler/6885584/Test6885584.java
---    pass   compiler/6891750/Test6891750.java
---    pass   compiler/6895383/Test.java
---    pass   compiler/6896727/Test.java
---    pass   compiler/6901572/Test.java
---    pass   compiler/6909839/Test6909839.java
---    pass   compiler/6910484/Test.java
---    pass   compiler/6910605/Test.java
---    pass   compiler/6910618/Test.java
---    pass   compiler/6912517/Test.java
---    pass   compiler/6916644/Test6916644.java
---    pass   compiler/6921969/TestMultiplyLongHiZero.java
---    pass   compiler/6930043/Test6930043.java
---    pass   compiler/6935535/Test.java

23 differences

In langtools all the tests continue to pass and a few tests were added:

0: b19-langtools/summary.txt  pass: 1,359
1: b20-langtools/summary.txt  pass: 1,365

0      1      Test
---    pass   tools/javac/cast/6548436/T6548436a.java
---    pass   tools/javac/cast/6548436/T6548436b.java
---    pass   tools/javac/cast/6548436/T6548436c.java
---    pass   tools/javac/cast/6548436/T6548436d.java
---    pass   tools/javac/processing/6499119/ClassProcessor.java
---    pass   tools/javac/processing/T6920317.java

6 differences

And in jdk a few tests were also added by virtue of the backports. Otherwise, the existing tests have generally consistent results. As done starting with build 18, the test run below was executed outside of Sun's and Oracle's wide-area network using generally accessible hosts for the network configuration file; to specify the networking configuratuion file, pass a "-e JTREG_TESTENV=Path_to_file" option to jtreg.

0: b19-jdk/summary.txt  pass: 3,261; fail: 28; error: 5
1: b20-jdk/summary.txt  pass: 3,273; fail: 33; error: 2

0      1      Test
---    pass   com/sun/java/swing/plaf/nimbus/ColorCustomizationTest.java
---    pass   com/sun/java/swing/plaf/nimbus/Test6919629.java
error  pass   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java
error  pass   java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java
---    pass   java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java
---    pass   java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java
error  fail   java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java
pass   ---    java/awt/Focus/NonFocusableWindowTest/Test.java
fail   pass   java/awt/Focus/TypeAhead/TestFocusFreeze.java
---    pass   java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java
pass   fail   java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java
---    fail   java/awt/Graphics2D/DrawString/RotTransText.java
pass   fail   java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html
---    fail   java/awt/font/Rotate/TranslatedOutlineTest.java
pass   error  java/nio/channels/SocketChannel/Connect.java
fail   pass   java/nio/charset/Charset/Contains.java
pass   fail   java/util/Locale/Bug4184873Test.java
---    pass   javax/swing/MultiUIDefaults/4300666/bug4300666.java
---    pass   javax/swing/MultiUIDefaults/4331767/bug4331767.java
---    pass   javax/swing/MultiUIDefaults/Test6860438.java
---    fail   javax/swing/plaf/synth/Test6933784.java
---    pass   sun/pisces/DashStrokeTest.java
error  pass   sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
---    pass   sun/security/tools/jarsigner/diffend.sh
---    pass   sun/security/validator/CertReplace.java
---    pass   sun/security/validator/SameDN.java

26 differences

OpenJDK 6: b20 Source Bundle Published

On June 21, 2010 the source bundle for OpenJDK 6 b20 was published.

The predominant change in this build was rebranding, replacing Sun copyrights with Oracle ones. In the HotSpot repository, this was largely accomplished by Andrew John Hughes's backport of HotSpot 17 into OpenJDK 6. Additional fixes for Zero were also applied as were backports of Nimbus and timezone changes. On the build front, the jaxp and jax-ws source bundles are not downloaded by default anymore. To allow them to be downloaded, add "ALLOW_DOWNLOADS=true" to the top-level make command.

A detailed list of all the changes is also available.

Friday May 07, 2010

Draft of Restarted "OpenJDK Developers' Guide" available for discussion

I've been working on a restarted version of the "OpenJDK Developers' Guide" and I have a draft far enough along for general discussion. The content of the existing guide is primarily logistical and procedural in nature; in time, I plan to migrate this information to a JDK 7 specific page because many of the details are release-specific. The new guide is more conceptual and once completed is intended to be able to last for several releases without major updating.

The table of contents of draft version 0.775 is:

The full draft is available from here.

The compatibility sections are currently more fully developed than the ones about developing a change. (Long-time readers of this blog will be familiar with earlier versions of some of the material.)

All level of feedback is welcome, from correcting typos, to stylistic suggestions, to proposals for new sections. Significant feedback should be sent to the project alias for the guide.

Initially, I plan to maintain the guide as an HTML file and publish new versions as needed. Over time, guide maintenance may transition to more formal version control, such as a small Mercurial repository or a wiki.

Thursday Apr 15, 2010

OpenJDK 6: b19 regression test results

Running with the usual jtreg flags, -a -ignore:quiet in all repositories and adding -s and now also -ea -esa for langtools, the basic regression test results on Linux for OpenJDK 6 build 19 are:

  • HotSpot, 62 tests passed.

  • Langtools, 1,359 tests passed.

  • JDK, 3,261 tests pass, 28 fail, and 5 have errors.

All the HotSpot tests continue to pass and more tests were added:

0: b18-hotspot/summary.txt  pass: 24
1: b19-hotspot/summary.txt  pass: 62

0      1      Test
---    pass   compiler/5057225/Test5057225.java
---    pass   compiler/6378821/Test6378821.java
---    pass   compiler/6539464/Test.java
---    pass   compiler/6589834/Test_ia32.java
---    pass   compiler/6603011/Test.java
---    pass   compiler/6636138/Test1.java
---    pass   compiler/6636138/Test2.java
---    pass   compiler/6711117/Test.java
---    pass   compiler/6772683/InterruptedTest.java
---    pass   compiler/6778657/Test.java
---    pass   compiler/6795161/Test.java
---    pass   compiler/6795465/Test6795465.java
---    pass   compiler/6797305/Test6797305.java
---    pass   compiler/6799693/Test.java
---    pass   compiler/6800154/Test6800154.java
---    pass   compiler/6814842/Test6814842.java
---    pass   compiler/6823354/Test6823354.java
---    pass   compiler/6823453/Test.java
---    pass   compiler/6826736/Test.java
---    pass   compiler/6832293/Test.java
---    pass   compiler/6833129/Test.java
---    pass   compiler/6837011/Test6837011.java
---    pass   compiler/6837094/Test.java
---    pass   compiler/6843752/Test.java
---    pass   compiler/6849574/Test.java
---    pass   compiler/6851282/Test.java
---    pass   compiler/6852078/Test6852078.java
---    pass   compiler/6855164/Test.java
---    pass   compiler/6855215/Test6855215.java
---    pass   compiler/6857159/Test6857159.java
---    pass   compiler/6859338/Test6859338.java
---    pass   compiler/6860469/Test.java
---    pass   compiler/6863155/Test6863155.java
---    pass   compiler/6863420/Test.java
---    pass   compiler/6865031/Test.java
---    pass   compiler/6875866/Test.java
---    pass   compiler/6892265/Test.java
---    pass   gc/6845368/bigobj.java

38 differences

In langtools all the tests continue to pass and a few tests were added:

0: b18-langtools/summary.txt  pass: 1,355
1: b19-langtools/summary.txt  pass: 1,359

0      1      Test
---    pass   tools/javac/enum/T6724345.java
---    pass   tools/javac/processing/6511613/clss41701.java
---    pass   tools/javac/processing/6634138/T6634138.java
---    pass   tools/javac/processing/model/util/elements/VacuousEnum.java

4 differences

And in jdk, many tests were backported form JDK 7 in addition to some new test being added. Otherwise, the existing tests have generally consistent results. As done started with build 18, the test run below was executed outside of Sun's and Oracle's wide-area network using the following contents for the testing network configuration file:

host=icedtea.classpath.org
refusing_host=ns1.gnu.org
far_host=developer.classpath.org

The file location to use for the networking configuration can be set by passing a -e JTREG_TESTENV=Path to file option to jtreg.

0: b18-jdk/summary.txt  pass: 3,148; fail: 19; error: 2
1: b19-jdk/summary.txt  pass: 3,261; fail: 28; error: 5

0      1      Test
---    error  java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java
---    error  java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java
---    error  java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java
---    pass   java/awt/Focus/NonFocusableWindowTest/Test.java
---    fail   java/awt/Focus/TypeAhead/TestFocusFreeze.java
---    fail   java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html
fail   pass   java/awt/event/KeyEvent/CorrectTime/CorrectTime.java
---    fail   java/awt/xembed/server/RunTestXEmbed.java
---    pass   java/nio/charset/Charset/AvailableCharsetNames.java
---    pass   java/nio/charset/Charset/CharsetContainmentTest.java
---    fail   java/nio/charset/Charset/Contains.java
---    pass   java/nio/charset/Charset/EmptyCharsetName.java
---    pass   java/nio/charset/Charset/EncDec.java
---    pass   java/nio/charset/Charset/IllegalCharsetName.java
---    fail   java/nio/charset/Charset/NIOCharsetAvailabilityTest.java
---    pass   java/nio/charset/Charset/NullCharsetName.java
---    pass   java/nio/charset/Charset/RegisteredCharsets.java
---    pass   java/nio/charset/Charset/default.sh
---    pass   java/nio/charset/CharsetDecoder/AverageMax.java
---    pass   java/nio/charset/CharsetDecoder/EmptyInput.java
---    pass   java/nio/charset/CharsetEncoder/CanEncode.java
---    pass   java/nio/charset/CharsetEncoder/Flush.java
---    pass   java/nio/charset/RemovingSunIO/SunioAlias.java
---    pass   java/nio/charset/RemovingSunIO/TestCOMP.java
---    pass   java/nio/charset/RemovingSunIO/TestUnmappableForLength.java
---    pass   java/nio/charset/coders/BashCache.java
---    pass   java/nio/charset/coders/BashStreams.java
---    pass   java/nio/charset/coders/Check.java
---    pass   java/nio/charset/coders/CheckSJISMappingProp.sh
---    pass   java/nio/charset/coders/Errors.java
---    pass   java/nio/charset/coders/FullRead.java
---    pass   java/nio/charset/coders/IOCoders.java
---    pass   java/nio/charset/coders/IsLegalReplacement.java
---    pass   java/nio/charset/coders/ResetISO2022JP.java
---    pass   java/nio/charset/coders/StreamTimeout.java
---    pass   java/nio/charset/coders/Surrogates.java
---    pass   java/nio/charset/spi/basic.sh
fail   pass   java/rmi/transport/pinLastArguments/PinLastArguments.java
---    pass   java/text/Bidi/BidiBug.java
---    pass   java/text/Bidi/BidiEmbeddingTest.java
---    pass   java/text/Bidi/BidiSurrogateTest.java
---    pass   java/util/prefs/CommentsInXml.java
---    pass   java/util/prefs/ConflictInFlush.java
---    pass   java/util/prefs/ExportNode.java
---    pass   java/util/prefs/ExportSubtree.java
---    pass   java/util/prefs/PrefsSpi.sh
---    pass   java/util/prefs/RemoveReadOnlyNode.java
---    pass   java/util/prefs/RemoveUnregedListener.java
---    pass   java/util/prefs/SerializeExceptions.java
---    pass   javax/sound/midi/Gervill/AudioFloatFormatConverter/SkipTest.java
---    pass   javax/sound/midi/Gervill/ModelByteBufferWavetable/OpenStream.java
---    pass   javax/sound/midi/Gervill/ModelStandardIndexedDirector/ModelStandardIndexedDirectorTest.java
---    pass   javax/sound/midi/Gervill/SoftChannel/ProgramAndBankChange.java
---    pass   javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments2.java
---    pass   javax/sound/midi/Gervill/SoftSynthesizer/GetLoadedInstruments2.java
---    pass   javax/sound/midi/Gervill/SoftSynthesizer/GetPropertyInfo.java
---    pass   javax/sound/midi/Gervill/SoftSynthesizer/TestDisableLoadDefaultSoundbank.java
---    pass   javax/sound/midi/Gervill/SoftTuning/RealTimeTuning.java
---    pass   javax/swing/JColorChooser/Test4165217.java
---    pass   javax/swing/JColorChooser/Test4177735.java
---    pass   javax/swing/JColorChooser/Test4193384.java
---    pass   javax/swing/JColorChooser/Test4234761.java
---    pass   javax/swing/JColorChooser/Test4461329.java
---    pass   javax/swing/JColorChooser/Test4711996.java
---    pass   javax/swing/border/Test4120351.java
---    pass   javax/swing/border/Test4124729.java
---    pass   javax/swing/border/Test6461042.java
---    pass   sun/nio/cs/BufferUnderflowEUCTWTest.java
---    pass   sun/nio/cs/CheckCaseInsensitiveEncAliases.java
---    pass   sun/nio/cs/CheckHistoricalNames.java
---    pass   sun/nio/cs/ConvertSingle.java
---    pass   sun/nio/cs/DecoderOverflow.java
---    pass   sun/nio/cs/EUCJPUnderflowDecodeTest.java
---    pass   sun/nio/cs/EucJpLinux0212.java
---    pass   sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java
---    pass   sun/nio/cs/EuroConverter.java
---    pass   sun/nio/cs/FindASCIICodingBugs.java
---    pass   sun/nio/cs/FindASCIIRangeCodingBugs.java
---    pass   sun/nio/cs/FindCanEncodeBugs.java
---    pass   sun/nio/cs/FindDecoderBugs.java
---    pass   sun/nio/cs/FindEncoderBugs.java
---    pass   sun/nio/cs/FindOneCharEncoderBugs.java
---    pass   sun/nio/cs/HWKatakanaMS932EncodeTest.java
---    pass   sun/nio/cs/ISCIITest.java
---    pass   sun/nio/cs/ISO8859x.java
---    pass   sun/nio/cs/JISAutoDetectTest.java
---    pass   sun/nio/cs/LatinCharReplacementTWTest.java
---    pass   sun/nio/cs/LeftOverSurrogate.java
---    pass   sun/nio/cs/MalformedSurrogates.java
---    pass   sun/nio/cs/NIOJISAutoDetectTest.java
---    pass   sun/nio/cs/ReadZero.java
---    pass   sun/nio/cs/SJISCanEncode.java
---    pass   sun/nio/cs/StreamEncoderClose.java
---    pass   sun/nio/cs/SurrogateGB18030Test.java
---    pass   sun/nio/cs/SurrogateTestEUCTW.java
---    pass   sun/nio/cs/SurrogateTestHKSCS.java
---    fail   sun/nio/cs/Test4200310.sh
---    pass   sun/nio/cs/Test4206507.java
---    pass   sun/nio/cs/Test6254467.java
---    pass   sun/nio/cs/Test6275027.java
---    pass   sun/nio/cs/TestCompoundTest.java
---    pass   sun/nio/cs/TestConverterDroppedCharacters.java
---    pass   sun/nio/cs/TestCp834_SBCS.java
---    pass   sun/nio/cs/TestCp93xSISO.java
---    pass   sun/nio/cs/TestIBMBugs.java
---    pass   sun/nio/cs/TestISCII91.java
---    pass   sun/nio/cs/TestISO2022CNDecoder.java
---    pass   sun/nio/cs/TestISO2022JP.java
---    pass   sun/nio/cs/TestISO2022JPEncoder.java
---    pass   sun/nio/cs/TestISO2022JPSubBytes.java
---    pass   sun/nio/cs/TestIllegalISO2022Esc.java
---    pass   sun/nio/cs/TestIllegalSJIS.java
---    pass   sun/nio/cs/TestJIS0208Decoder.java
---    pass   sun/nio/cs/TestJIS0212Decoder.java
---    pass   sun/nio/cs/TestMS5022X.java
---    pass   sun/nio/cs/TestMiscEUC_JP.java
---    fail   sun/nio/cs/TestSJIS0213.java
---    pass   sun/nio/cs/TestTrailingEscapesISO2022JP.java
---    pass   sun/nio/cs/TestUTF8BOM.java
---    pass   sun/nio/cs/TestUTF_16.java
---    pass   sun/nio/cs/TestUni2HKSCS.java
---    pass   sun/nio/cs/TestX11JIS0201.java
---    pass   sun/nio/cs/UkrainianIsNotRussian.java
---    pass   sun/nio/cs/ZeroedByteArrayEUCTWTest.java
pass   ---    sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java
pass   ---    sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java
pass   ---    sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java
pass   ---    sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java
pass   ---    sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
---    fail   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java
---    pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java
---    pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java
---    pass   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java
---    fail   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java
---    fail   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java
---    fail   sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java
---    pass   sun/security/util/Oid/BerOid.java

137 differences

OpenJDK: 6 b19 Source Bundle Published

On April 15, 2010 the source bundle for OpenJDK 6 b19 was published.

Major changes in this build include the latest round of security fixes and, courtesy of Andrew John Hughes, several significant backports including the HotSpot 16 changes, Zero support, and regression tests previously published under open source in JDK 7. Also of note, all the langtools regression tests now pass when run with assertions enabled.

A detailed list of all the changes is also available.

Thursday Mar 25, 2010

OpenJDK 6 Processes

[The entry below is a lightly edited version of a message previously sent to the OpenJDK 6 development alias jdk6-dev@openjdk.java.net.]


Since questions about OpenJDK 6 processes come up from time to time, in my role as release manager I thought it would be helpful to more fully document the current engineering practices and receive comments about them.

OpenJDK 6 is an implementation of the Java SE 6 specification valuing stability, compatibility, and security. As an implementation of the Java SE 6 specification, all changes to OpenJDK 6 must be allowable within that specification. This requirement precludes many API changes. Acceptable API changes include those permitted by the endorsed standards mechanism, such as upgrading to a newer version of a standalone technology, like a component JSR. One example of such an API change was the upgrade of JAX-WS from 2.0 to 2.1 in OpenJDK 6 build b06.

Changes allowable within the Java SE 6 specification may still be rejected for inclusion in OpenJDK 6 if the behavioral compatibility risk is judged as too large. (See previous write-ups of kinds of compatibility and compatibly regions in JDK releases.) Behavioral compatibility concerns implementation properties of the JDK. Clients of the JDK can knowingly or unknowingly come to rely upon implementation-specification behaviors not guaranteed by the specification and care should be taken to not break such applications needlessly. In contrast, if a change is appropriate for every other JDK release train, it is generally appropriate for OpenJDK 6 too. Examples of such universal changes include security fixes and time zone information updates.

With the above caveats, bug fixes in JDK 7 that do not involve specification changes have presumptive validity for OpenJDK 6. That is, by default such fixes are assumed to be applicable to OpenJDK 6, especially if having "soaked" in JDK 7 for a time without incident. On a related point, the fixes from the stabilized HotSpot forests (for example HotSpot Express 14 or HotSpot Express 16) are suitable for bulk porting to the OpenJDK 6 HotSpot repository without review of individual bugs.

As a general guideline, if a change is applicable to both JDK 7 and OpenJDK 6, the change should be made in JDK 7 no later than the change is made in OpenJDK 6.

With the exception of security fixes, all OpenJDK 6 code review traffic should be sent to jdk6-dev@openjdk.java.net for consideration before a commit occurs. (For subscription instructions and to browse the archives see http://mail.openjdk.java.net/mailman/listinfo/jdk6-dev) All fixes require the approval of the release manager and may require additional technical review and approval at the discretion of the release manager. Security fixes are first kept confidential and applied to a private forest before being pushed to the public forest as part of the general synchronized publication of the fix to effected JDK release trains.

The master Mercurial forest of OpenJDK 6 repositories resides at:
http://hg.openjdk.java.net/jdk6/jdk6

Since there is only a single master OpenJDK 6 forest, near the end of a build period the release manager may defer otherwise acceptable changes to the start of the next build.

The schedule to tag builds of OpenJDK 6 is on an as-needed basis. The timing and feature list of a build is coordinated on the jdk6-dev alias with the IcedTea 6 project, a downstream client of OpenJDK 6. Before a build is tagged, regression and other testing is performed to verify the quality of the build.

After feedback is collected from jdk6-dev and this blog entry, the OpenJDK 6 project page will be updated with the current process information.


Alternatively, in JDK 7 there are a hierarchy of staging integration forests under the master to manage a higher rate of change, see OpenJDK Mercurial Wheel). As the rate of change in OpenJDK 6 is comparatively small, as long as the end of build quiet periods continue to be acceptably short, having a single master forest should be simpler than starting and managing an intermediate staging forest kept open to accepting changes at all times.

Friday Mar 12, 2010

Last Round Compiling

As of build 85 of JDK 7, bug 6634138 "Source generated in last round not compiled" has been fixed in javac. Previously, source code generated in a round of annotation processing where RoundEnvironment.processingOver() was true was not compiled. With the fix, source generated in the last round is compiled, but, as intended, while compiled such source still does not undergo annotation processing since processing is over. The fix has also been applied to OpenJDK 6 build 19.

Thursday Mar 11, 2010

An Assertive Quality in Langtools

With a duo of fixes in JDK 7 build 85, one by Jon (6927797) and another by me (6926703), the langtools repository has reached another milestone in testing robustness: all the tests pass with assertions (-ea) and system assertions (-esa) enabled. This adds to other useful langtools testing properties, such as being able to successufully run in the speedy same vm testing mode.

Jon's fix was just updating a test so that some code would always be run with assertions disabled while my fix corrected an actual buggy assert I included in apt. Addressing such problems helps simplify analyzing test results; if there is a failure, there is a problem!

These fixes have also been applied in the forthcoming OpenJDK 6 build 19 so it too will have the same assertive testing quality.

Wednesday Feb 17, 2010

OpenJDK 6: b18 regression test results

Running with the usual jtreg flags, -a -ignore:quiet in all repositories and adding -s for langtools, the basic regression test results on Linux for OpenJDK 6 build 18 are:

  • HotSpot, 24 tests passed.

  • Langtools, 1,355 tests passed.

  • JDK, 3,148 tests pass, 19 fail, and 2 have errors.

All the HotSpot tests continue to pass:

0: b17-hotspot/summary.txt  pass: 24
1: b18-hotspot/summary.txt  pass: 24

No differences

In langtools all the tests continue to pass and one test was added:

0: b17-langtools/summary.txt  pass: 1,354
1: b18-langtools/summary.txt  pass: 1,355

0      1      Test
---    pass   tools/javac/T6855236.java

1 differences

And in jdk, a few dozen new tests were added in b18 and the existing tests have generally consistent results, with a number of long-standing test failures corrected by Pavel Tisnovsky. The test run below was executed outside of Sun's and Oracle's wide-area network using the following contents for the testing network configuration file:

host=icedtea.classpath.org
refusing_host=ns1.gnu.org
far_host=developer.classpath.org

The file location to use for the networking configuration can be set by passing a -e JTREG_TESTENV=Path to file option to jtreg.

0: b17-jdk/summary.txt  pass: 3,118; fail: 26
1: b18-jdk/summary.txt  pass: 3,148; fail: 19; error: 2

0      1      Test
---    pass   com/sun/java/swing/plaf/nimbus/Test6741426.java
---    pass   com/sun/java/swing/plaf/nimbus/Test6849805.java
---    pass   com/sun/jdi/BreakpointWithFullGC.sh
---    pass   com/sun/jdi/ResumeOneThreadTest.java
---    pass   com/sun/jdi/SimulResumerTest.java
---    pass   demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java
fail   pass   java/awt/Frame/DynamicLayout/DynamicLayout.java
fail   pass   java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java
fail   pass   java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java
fail   pass   java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java
---    pass   java/awt/GraphicsDevice/CloneConfigsTest.java
fail   pass   java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java
fail   pass   java/awt/Insets/CombinedTestApp1.java
fail   pass   java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html
fail   pass   java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html
fail   pass   java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html
fail   pass   java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html
pass   fail   java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java
fail   pass   java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html
fail   pass   java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java
pass   ---    java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java
pass   fail   java/awt/Window/GrabSequence/GrabSequence.java
fail   pass   java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java
pass   fail   java/awt/print/PrinterJob/ExceptionTest.java
---    pass   java/lang/ClassLoader/UninitializedParent.java
pass   fail   java/net/ipv6tests/TcpTest.java
pass   fail   java/nio/channels/SocketChannel/AdaptSocket.java
pass   fail   java/nio/channels/SocketChannel/LocalAddress.java
pass   fail   java/nio/channels/SocketChannel/Shutdown.java
pass   fail   java/rmi/transport/pinLastArguments/PinLastArguments.java
---    pass   java/util/TimeZone/OldIDMappingTest.sh
---    pass   java/util/TimeZone/TimeZoneDatePermissionCheck.sh
---    pass   javax/swing/JButton/6604281/bug6604281.java
fail   pass   javax/swing/JTextArea/Test6593649.java
---    pass   javax/swing/Security/6657138/ComponentTest.java
---    pass   javax/swing/Security/6657138/bug6657138.java
---    pass   javax/swing/ToolTipManager/Test6657026.java
---    pass   javax/swing/UIManager/Test6657026.java
---    pass   javax/swing/plaf/basic/BasicSplitPaneUI/Test6657026.java
---    pass   javax/swing/plaf/metal/MetalBorders/Test6657026.java
---    pass   javax/swing/plaf/metal/MetalBumps/Test6657026.java
---    pass   javax/swing/plaf/metal/MetalInternalFrameUI/Test6657026.java
---    pass   javax/swing/plaf/metal/MetalSliderUI/Test6657026.java
pass   error  sun/java2d/OpenGL/GradientPaints.java
pass   fail   sun/rmi/transport/proxy/EagerHttpFallback.java
---    pass   sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java
---    pass   sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java
---    pass   sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java
---    pass   sun/security/provider/certpath/DisabledAlgorithms/CPValidatorTrustAnchor.java
pass   error  sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
---    pass   sun/security/tools/jarsigner/emptymanifest.sh
---    pass   sun/security/util/DerValue/BadValue.java
fail   pass   sun/tools/jhat/HatHeapDump1Test.java
fail   pass   sun/tools/native2ascii/NativeErrors.java

54 differences

OpenJDK 6: b18 Source Bundle Published

On February 16, 2010 the source bundle for OpenJDK 6 b18 was published.

Major changes in this build include the latest round of security fixes and, courtesy of Andrew John Hughes, a backport of the Nimbus look and feel from JDK 7. In addition, a new delivery model is being used for the jaxp and jax-ws components.

A detailed list of all the changes is also available.

Tuesday Feb 02, 2010

JDK 7: New Component Delivery Model Delivered

Thanks to Kelly, the new component delivery model for jaxp and jax-ws is now available in both JDK 7, as of build 72 of milestone 5, and OpenJDK 6, coming in build 18 (6856630).

As described previously, the JDK build no longer tracks a copy of the jaxp and jax-ws sources under version control. Instead source bundles from the upstream teams are used. The jaxp.properties file in the jaxp repository contains the default URL from which the source bundle is downloaded as well as the expected checksum for that file. The analogous setup is used for jax-ws in its repository. To avoid downloading another copy of a bundle or to try out an alternate bundle, several variables can be set in the ant build of one of the repositories. For jaxp,

jaxp-repo-directory$ ant -f build.xml \\
-Ddrops.master.copy.base=path-to-drop-directory \\
-Djaxp_src.bundle.name=name-of-source-zip-bundle-in-drop-directory \\
-Djaxp_src.bundle.md5.checksum=md5-of-source-zip-bundle

If changes local to the JDK are needed, patches can be applied from the new patches directory in the two repositories. For example, patches are a mechanism that could be used to deploy security fixes until a new source bundle with those fixes was externally available.

With this new delivery model, I look forward to low-overhead and coordinated updates to jaxp and jax-ws in OpenJDK 6 and JDK 7.

A possible future consolidation would fold the build logic in the now vestigial jaxp and jax-ws repositories into the main jdk repository.

Monday Oct 19, 2009

OpenJDK 6: b17 regression test results

Running with the usual jtreg flags, -a -ignore:quiet always and -s for the langtools area, the basic regression test results on Linux for OpenJDK 6 build 17 are:

  • HotSpot, 24 tests passed.

  • Langtools, 1354 tests passed.

  • JDK, 3,118 tests pass and 26 tests fail.

With the sync of HotSpot 14 into OpenJDK 6, more tests were added:

0: b16-hotspot/summary.txt  pass: 3
1: b17-hotspot/summary.txt  pass: 24

0      1      Test
---    pass   compiler/6646019/Test.java
---    pass   compiler/6646020/Tester.java
---    pass   compiler/6661247/Test.java
---    pass   compiler/6663848/Tester.java
---    pass   compiler/6689060/Test.java
---    pass   compiler/6695810/Test.java
---    pass   compiler/6700047/Test6700047.java
---    pass   compiler/6711100/Test.java
---    pass   compiler/6712835/Test6712835.java
---    pass   compiler/6714694/Tester.java
---    pass   compiler/6716441/Tester.java
---    pass   compiler/6726999/Test.java
---    pass   compiler/6741738/Tester.java
---    pass   compiler/6756768/Test6756768.java
---    pass   compiler/6756768/Test6756768_2.java
---    pass   compiler/6757316/Test6757316.java
---    pass   compiler/6758234/Test6758234.java
---    pass   compiler/6775880/Test.java
---    pass   compiler/6795362/Test6795362.java
---    pass   compiler/6805724/Test6805724.java
---    pass   runtime/6819213/TestBootNativeLibraryPath.java

21 differences

In langtools all the tests continue to pass; a few tests were rearranged and some more tests were added:

0: b16-langtools/summary.txt  pass: 1,352
1: b17-langtools/summary.txt  pass: 1,354

0      1      Test
---    pass   tools/javac/T6558476.java
---    pass   tools/javac/T6882235.java
---    pass   tools/javac/annotations/pos/TrailingComma.java
pass   ---    tools/javac/api/6440333/T6440333.java
pass   ---    tools/javac/api/Sibling.java
pass   ---    tools/javac/innerClassFile/Driver.java
---    pass   tools/javac/innerClassFile/Driver.sh
pass   ---    tools/javac/links/T.java
---    pass   tools/javac/links/links.sh
---    pass   tools/javac/processing/model/util/elements/TestGetConstantExpression.java

10 differences

And in jdk, a few dozen new tests were added in b17 and the existing tests have generally consistent results:

0: b16-jdk/summary.txt  pass: 3,085; fail: 29; error: 4
1: b17-jdk/summary.txt  pass: 3,118; fail: 26

0      1      Test
error  pass   com/sun/jdi/DoubleAgentTest.java
---    pass   com/sun/jndi/dns/CheckAccess.java
---    pass   com/sun/org/apache/xml/internal/security/TruncateHMAC.java
---    pass   com/sun/security/sasl/util/CheckAccess.java
fail   pass   java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java
fail   pass   java/awt/Graphics/DrawImageBG/SystemBgColorTest.java
error  ---    java/awt/PrintJob/EdgeTest/EdgeTest.java
error  pass   java/awt/PrintJob/MultipleEnd/MultipleEnd.java
fail   pass   java/awt/print/PrinterJob/ExceptionTest.java
---    pass   java/beans/Introspector/Test6660539.java
---    pass   java/beans/XMLEncoder/6777487/TestBox.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedCollection.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedList.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedMap.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedRandomAccessList.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedSet.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedSortedMap.java
---    pass   java/beans/XMLEncoder/6777487/TestCheckedSortedSet.java
---    pass   java/beans/XMLEncoder/6777487/TestEnumMap.java
---    pass   java/beans/XMLEncoder/6777487/TestEnumSet.java
---    pass   java/lang/Double/ToString.java
---    pass   java/nio/channels/Selector/RegAfterPreClose.java
fail   pass   java/rmi/transport/pinLastArguments/PinLastArguments.java
---    pass   java/security/AccessControlContext/FailureDebugOption.java
---    pass   java/util/SimpleTimeZone/EndOfDay.java
---    pass   java/util/TimeZone/ListTimeZones.java
---    pass   javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest2.java
---    pass   javax/sound/midi/Gervill/SoftReceiver/GetMidiDevice.java
---    pass   javax/sound/midi/Gervill/SoftSynthesizer/TestPreciseTimestampRendering.java
---    fail   javax/swing/JTextArea/Test6593649.java
---    pass   javax/swing/plaf/synth/Test6660049.java
---    pass   javax/swing/text/LayoutQueue/Test6588003.java
---    pass   sun/pisces/JoinMiterTest.java
error  pass   sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
---    pass   tools/pack200/MemoryAllocatorTest.java

35 differences

OpenJDK 6: b17 Source Bundle Published

On October 16, the source bundle for OpenJDK 6 b17 was published.

Major changes in this build include the latest round of security fixes and, courtesy of Andrew John Hughes, the syncing of HotSpot 14 into the OpenJDK 6 HotSpot repository.

A detailed list of all the changes is also available.

Thursday Aug 13, 2009

JDK 7: New Component Delivery Model in the Works

The JDK includes many logically distinct sets of APIs. Some of the APIs naturally live in the JDK and evolve at the pace of the JDK; other APIs are effectively maintained externally, but are also shipped as part of the public API provided by the JDK. Two APIs in the latter camp are jaxp and jax-ws, both of which natively live in the GlassFish project.

Currently, those components are maintained under separate version control as part of OpenJDK in the jaxp and jax-ws repositories, respectively. Code in these components is periodically synced with changes from the upstream masters, with some nontrivial overhead.

To reduce the overhead of updating the components and thereby make it possible to update them more frequently, we're in the process of changing the delivery model of these externally maintained components into the JDK. First for JDK 7 and later for OpenJDK 6, instead of tracking these code bases under independent version control in the JDK, the JDK build will logically get the source for those components from a source bundle. The upstream teams will be responsible for providing source bundles and the JDK build will be configurable to use a particular source bundle.

Kelly has been working in implementing this new model for jaxp in the JDK 7 build, including working out the detailed logistics with the upstream teams. An initial version of the change is out for review.

This new approach is the same basic model the IcedTea project uses to provide changes and functionality on top of OpenJDK so there is lots of evidence large code bases can be handled using this model.

About

darcy

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News

No bookmarks in folder

Blogroll