From pavel.porvatov at oracle.com Wed Oct 5 07:22:58 2011 From: pavel.porvatov at oracle.com (pavel.porvatov at oracle.com) Date: Wed, 05 Oct 2011 14:22:58 +0000 Subject: hg: jdk8/awt/jdk: 7072167: The "root" field in BufferStrategyPaintManager leaks memory Message-ID: <20111005142316.AD93E47BFE@hg.openjdk.java.net> Changeset: fcdb588d77ef Author: rupashka Date: 2011-10-05 18:21 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/fcdb588d77ef 7072167: The "root" field in BufferStrategyPaintManager leaks memory Reviewed-by: alexp ! src/share/classes/javax/swing/BufferStrategyPaintManager.java From pavel.porvatov at oracle.com Tue Oct 11 04:23:45 2011 From: pavel.porvatov at oracle.com (pavel.porvatov at oracle.com) Date: Tue, 11 Oct 2011 11:23:45 +0000 Subject: hg: jdk8/awt/jdk: 7076791: closed/javax/swing/JColorChooser/Test6827032.java failed on windows Message-ID: <20111011112414.80EF247F04@hg.openjdk.java.net> Changeset: 98901d41e1e2 Author: rupashka Date: 2011-10-11 15:22 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/98901d41e1e2 7076791: closed/javax/swing/JColorChooser/Test6827032.java failed on windows Reviewed-by: rupashka Contributed-by: alexandr.scherbatiy at oracle.com + test/javax/swing/JColorChooser/Test6827032.java ! test/javax/swing/regtesthelpers/Util.java From david.holmes at oracle.com Wed Oct 12 00:36:12 2011 From: david.holmes at oracle.com (David Holmes) Date: Wed, 12 Oct 2011 17:36:12 +1000 Subject: Request for review - change two include header files according to POSIX.1-2008 In-Reply-To: <4E954066.9030001@linux.vnet.ibm.com> References: <4E953300.9000208@linux.vnet.ibm.com> <4E953DCC.5060600@oracle.com> <4E954066.9030001@linux.vnet.ibm.com> Message-ID: <4E95436C.10307@oracle.com> On 12/10/2011 5:23 PM, Charles Lee wrote: > On 10/12/2011 03:12 PM, David Holmes wrote: >> On 12/10/2011 4:26 PM, Charles Lee wrote: >>> sys/unistd.h, sys/fcntl.h are not supported in AIX. And according to the >>> POSIX.1-2008 (http://pubs.opengroup.org/onlinepubs/9699919799/), I have >>> changed them to unistd.h and fcntl.h. The patch has been tested on both >>> linux and aix. >>> >>> I also change the header file in solaris, though I do not have a solaris >>> machine on the hand. Hope it will not break the build :-) >> >> unistd.h and fcntl.h are already used extensively on Solaris >> >>> The patch and webrev has been attached. >> >> Looks like they were stripped of the email. (And of the second attempt.) >> >> By grepping I assume the splashscreen_config.h file is one place this >> was fixed for unistd.h. It is interesting to note that in some cases >> at least (eg splashscreen_sys.c) the C file includes anyway. > > Yes. Only splashscreen_config.h has Ok. I've cc'ed awt-dev as this is awt code. >> >> We'll need to verify the changes for in the >> genUnixConstants code. There tends to be a reason (often historical >> and possibly no longer applicable) for using the sys variants (though >> sometimes it was just that the non-sys version didn't exist at some >> point in time). >> > > By grep, only genUnixConstants.c and genSolarisConstants.c use > in the jdk repository. And more than 20 files use Yep. And the fcntl manpage on Solaris says to #include and - so I think we're okay there. I suspect Solaris 8 may be a different story but that's only an issue for JDK6. David >> Cheers, >> David Holmes > > Trying to attach a plain diff file again and again.... > Patch inlined for AWT-dev folk to see. diff --git src/solaris/native/sun/awt/splashscreen/splashscreen_config.h src/solaris/native/sun/awt/splashscreen/splashscreen_config.h index bb03165..e312c2b 100644 --- src/solaris/native/sun/awt/splashscreen/splashscreen_config.h +++ src/solaris/native/sun/awt/splashscreen/splashscreen_config.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include diff --git src/solaris/native/sun/nio/fs/genSolarisConstants.c src/solaris/native/sun/nio/fs/genSolarisConstants.c index df46398..346bfbb 100644 --- src/solaris/native/sun/nio/fs/genSolarisConstants.c +++ src/solaris/native/sun/nio/fs/genSolarisConstants.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include /** diff --git src/solaris/native/sun/nio/fs/genUnixConstants.c src/solaris/native/sun/nio/fs/genUnixConstants.c index ea48d4d..56984a7 100644 --- src/solaris/native/sun/nio/fs/genUnixConstants.c +++ src/solaris/native/sun/nio/fs/genUnixConstants.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include /** From anthony.petrov at oracle.com Wed Oct 12 02:34:18 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 12 Oct 2011 13:34:18 +0400 Subject: Request for review - change two include header files according to POSIX.1-2008 In-Reply-To: <4E95436C.10307@oracle.com> References: <4E953300.9000208@linux.vnet.ibm.com> <4E953DCC.5060600@oracle.com> <4E954066.9030001@linux.vnet.ibm.com> <4E95436C.10307@oracle.com> Message-ID: <4E955F1A.6010501@oracle.com> Changes to the splashscreen_config.h look fine. Thanks. -- best regards, Anthony On 10/12/2011 11:36 AM, David Holmes wrote: > On 12/10/2011 5:23 PM, Charles Lee wrote: >> On 10/12/2011 03:12 PM, David Holmes wrote: >>> On 12/10/2011 4:26 PM, Charles Lee wrote: >>>> sys/unistd.h, sys/fcntl.h are not supported in AIX. And according to >>>> the >>>> POSIX.1-2008 (http://pubs.opengroup.org/onlinepubs/9699919799/), I have >>>> changed them to unistd.h and fcntl.h. The patch has been tested on both >>>> linux and aix. >>>> >>>> I also change the header file in solaris, though I do not have a >>>> solaris >>>> machine on the hand. Hope it will not break the build :-) >>> >>> unistd.h and fcntl.h are already used extensively on Solaris >>> >>>> The patch and webrev has been attached. >>> >>> Looks like they were stripped of the email. (And of the second attempt.) >>> >>> By grepping I assume the splashscreen_config.h file is one place this >>> was fixed for unistd.h. It is interesting to note that in some cases >>> at least (eg splashscreen_sys.c) the C file includes anyway. >> >> Yes. Only splashscreen_config.h has > > Ok. I've cc'ed awt-dev as this is awt code. > >>> >>> We'll need to verify the changes for in the >>> genUnixConstants code. There tends to be a reason (often historical >>> and possibly no longer applicable) for using the sys variants (though >>> sometimes it was just that the non-sys version didn't exist at some >>> point in time). >>> >> >> By grep, only genUnixConstants.c and genSolarisConstants.c use >> in the jdk repository. And more than 20 files use > > Yep. And the fcntl manpage on Solaris says to #include and > - so I think we're okay there. I suspect Solaris 8 may be a > different story but that's only an issue for JDK6. > > David > >>> Cheers, >>> David Holmes >> >> Trying to attach a plain diff file again and again.... >> > Patch inlined for AWT-dev folk to see. > > diff --git src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > index bb03165..e312c2b 100644 > --- src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > +++ src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > @@ -32,7 +32,7 @@ > #include > #include > #include > -#include > +#include > #include > #include > #include > diff --git src/solaris/native/sun/nio/fs/genSolarisConstants.c > src/solaris/native/sun/nio/fs/genSolarisConstants.c > index df46398..346bfbb 100644 > --- src/solaris/native/sun/nio/fs/genSolarisConstants.c > +++ src/solaris/native/sun/nio/fs/genSolarisConstants.c > @@ -27,7 +27,7 @@ > #include > #include > #include > -#include > +#include > #include > > /** > diff --git src/solaris/native/sun/nio/fs/genUnixConstants.c > src/solaris/native/sun/nio/fs/genUnixConstants.c > index ea48d4d..56984a7 100644 > --- src/solaris/native/sun/nio/fs/genUnixConstants.c > +++ src/solaris/native/sun/nio/fs/genUnixConstants.c > @@ -26,7 +26,7 @@ > #include > #include > #include > -#include > +#include > #include > > /** From neugens.limasoftware at gmail.com Fri Oct 14 13:30:04 2011 From: neugens.limasoftware at gmail.com (Mario Torre) Date: Fri, 14 Oct 2011 22:30:04 +0200 Subject: What to override and what now Message-ID: While working a bit on cacio, we just found some new nice addition to the Toolkit code, like this one: public boolean areExtraMouseButtonsEnabled() throws HeadlessException { GraphicsEnvironment.checkHeadless(); return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); } Of course, this method is meant to be overridden, so it will end up doing nothing, but things like this may be very difficult to debug at times, and in any case, is definitely are not friendly code. Is there any reason for this smartness? Why not simply provide a default implementation or just throw an exception or simply make the method abstract? Or maybe I'm missing something? I hope there are not many more of those examples scattered around, or to know what to subclass and override will be a pain. Cheers, Mario --- pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF http://www.ladybug-studio.com IcedRobot: www.icedrobot.org Proud GNU Classpath developer: http://www.classpath.org/ Read About us at: http://planet.classpath.org OpenJDK: http://openjdk.java.net/projects/caciocavallo/ Please, support open standards: http://endsoftpatents.org/ From pavel.porvatov at oracle.com Mon Oct 17 04:11:53 2011 From: pavel.porvatov at oracle.com (pavel.porvatov at oracle.com) Date: Mon, 17 Oct 2011 11:11:53 +0000 Subject: hg: jdk8/awt/jdk: 7099251: javax.swing.text.html.HTMLDocument.insertAfterStart(null, something) throws NPE Message-ID: <20111017111223.8AEAC4701C@hg.openjdk.java.net> Changeset: aa3f5117c485 Author: rupashka Date: 2011-10-17 15:10 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/aa3f5117c485 7099251: javax.swing.text.html.HTMLDocument.insertAfterStart(null, something) throws NPE Reviewed-by: rupashka Contributed-by: alexandr.scherbatiy at oracle.com ! src/share/classes/javax/swing/text/html/HTMLDocument.java From pavel.porvatov at oracle.com Mon Oct 17 05:41:51 2011 From: pavel.porvatov at oracle.com (pavel.porvatov at oracle.com) Date: Mon, 17 Oct 2011 12:41:51 +0000 Subject: hg: jdk8/awt/jdk: 7100004: javax.swing.JTable.setAutoCreateRowSorter(boolean autoCreateRowSorter) should mention default value Message-ID: <20111017124210.F2E224701F@hg.openjdk.java.net> Changeset: 4f74e3fdf86b Author: rupashka Date: 2011-10-17 16:40 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/4f74e3fdf86b 7100004: javax.swing.JTable.setAutoCreateRowSorter(boolean autoCreateRowSorter) should mention default value Reviewed-by: rupashka Contributed-by: alexandr.scherbatiy at oracle.com ! src/share/classes/javax/swing/JTable.java From pavel.porvatov at oracle.com Mon Oct 17 06:21:13 2011 From: pavel.porvatov at oracle.com (pavel.porvatov at oracle.com) Date: Mon, 17 Oct 2011 13:21:13 +0000 Subject: hg: jdk8/awt/jdk: 7077293: javax/swing/JComponent/4337267/bug4337267.java failed on windows 2003 Message-ID: <20111017132123.6FBA647022@hg.openjdk.java.net> Changeset: f1dbc62c7c6d Author: rupashka Date: 2011-10-17 17:19 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f1dbc62c7c6d 7077293: javax/swing/JComponent/4337267/bug4337267.java failed on windows 2003 Reviewed-by: rupashka Contributed-by: alexandr.scherbatiy at oracle.com ! src/share/classes/sun/swing/SwingUtilities2.java From david.buck at oracle.com Mon Oct 17 19:07:41 2011 From: david.buck at oracle.com (david.buck at oracle.com) Date: Tue, 18 Oct 2011 02:07:41 +0000 Subject: hg: jdk8/awt/jdk: 6887286: StackOverflowError at sun.awt.image.ImageWatched$WeakLink.isWatcher Message-ID: <20111018020751.0E64F47036@hg.openjdk.java.net> Changeset: a2f5d7049258 Author: dbuck Date: 2011-10-17 19:06 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/a2f5d7049258 6887286: StackOverflowError at sun.awt.image.ImageWatched$WeakLink.isWatcher Summary: Fixed OffScreenImageSource to call imageComplete() with SINGLEFAMEDONE, not STATICIMAGEDONE. This fixed memory leak (that caused SOFE when we use recursion to iterate over linked list). Reviewed-by: bae ! src/share/classes/sun/awt/image/OffScreenImageSource.java From neil.richards at ngmr.net Thu Oct 20 06:38:22 2011 From: neil.richards at ngmr.net (neil.richards at ngmr.net) Date: Thu, 20 Oct 2011 13:38:22 +0000 Subject: hg: jdk8/awt/jdk: 7100054: (porting) Native code should include fcntl.h and unistd.h rather than sys/fcntl.h and sys/unistd.h Message-ID: <20111020133833.4E596470A2@hg.openjdk.java.net> Changeset: f218e6bdf1e8 Author: ngmr Date: 2011-10-13 13:02 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f218e6bdf1e8 7100054: (porting) Native code should include fcntl.h and unistd.h rather than sys/fcntl.h and sys/unistd.h Summary: Use POSIX defined includes for unistd.h and fcntl.h Reviewed-by: anthony, ngmr Contributed-by: Charles Lee ! src/solaris/native/sun/awt/splashscreen/splashscreen_config.h From ddadacha at redhat.com Thu Oct 20 13:03:16 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Thu, 20 Oct 2011 16:03:16 -0400 Subject: [RFC] Tray icons for applications are not displayed in the GNOME notification bar. Message-ID: <4EA07E84.2050909@redhat.com> Hi, There's a bug[1] with java tray icons and the new gnome-shell, the icon is no longer displayed. GNOME has adapted an additional spec[2] from the freedesktop standards for its notification bar (system tray). It now requires the XAtom _NET_WM_PID to be set, which in turn needs WM_CLIENT_MACHINE. If they aren't then things don't go smoothly and the bar won't show the icon/embedded frame. The following webrev fixes the bug: http://icedtea.classpath.org/~ddadacha/tray_icon/ This bug is also in jdk6 and 7 as well FWIW. I would appreciate any comments! Regards, Danesh [1] Original bug report - https://bugzilla.redhat.com/show_bug.cgi?id=683768 [2] http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html#id2523510 From federicotg at gmail.com Thu Oct 20 20:10:11 2011 From: federicotg at gmail.com (Federico Tello Gentile) Date: Fri, 21 Oct 2011 00:10:11 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason Message-ID: <1319166611.14335.25.camel@PhenomX4> Hi. I'm running java -version java version "1.7.0_147-icedtea" OpenJDK Runtime Environment (IcedTea7 2.0pre) (7~b147-2.0~pre6-1ubuntu1) OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) and profiling a simple Swing application. Just by opening a JFrame and moving the mouse over it for 10 secods I see 600 MB of char[] being created. I can easily create several terabytes or those if I move the mouse a little longer. Thanks to the incredibly efficient garbage collector the application performance is not visibly affected on my 4GB quad core machine. The problem is an incredibly inefficient method sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of this message. The way it it handling string concatenation forces StringBuilder to grow many times and ends up calling Arrays.copyOf a lot of times. It is being called by the sun.awt.X11.XWrapperBase.toString() just for the sake of logging here: sun.awt.X11.XComponentPeer protected boolean isEventDisabled(XEvent e) enableLog.finest("Component is {1}, checking for disabled event {0}", e, (isEnabled()?"enabled":"disable")); The worse part is that even if logging is disabled and nothing at all is ever logged, the toString is called anyway and all those char[] are created anyway. Here's a NetBeans profiler memory snapshot. http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 This does not happen *at all* if I run the same profiling with this openjdk version java -version java version "1.6.0_23" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) I hope we can do something to improve this situation. I guess all Swing applications are affected. I look forward for any comments. Here's the "thing"... --------------------------------------------------- String getFieldsAsString() { String ret=""; ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; ret += ""+"xany = " + get_xany() +", "; ret += ""+"xkey = " + get_xkey() +", "; ret += ""+"xbutton = " + get_xbutton() +", "; ret += ""+"xmotion = " + get_xmotion() +", "; ret += ""+"xcrossing = " + get_xcrossing() +", "; ret += ""+"xfocus = " + get_xfocus() +", "; ret += ""+"xexpose = " + get_xexpose() +", "; ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; ret += ""+"xnoexpose = " + get_xnoexpose() +", "; ret += ""+"xvisibility = " + get_xvisibility() +", "; ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; ret += ""+"xunmap = " + get_xunmap() +", "; ret += ""+"xmap = " + get_xmap() +", "; ret += ""+"xmaprequest = " + get_xmaprequest() +", "; ret += ""+"xreparent = " + get_xreparent() +", "; ret += ""+"xconfigure = " + get_xconfigure() +", "; ret += ""+"xgravity = " + get_xgravity() +", "; ret += ""+"xresizerequest = " + get_xresizerequest() +", "; ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; ret += ""+"xcirculate = " + get_xcirculate() +", "; ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; ret += ""+"xproperty = " + get_xproperty() +", "; ret += ""+"xselectionclear = " + get_xselectionclear() +", "; ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; ret += ""+"xselection = " + get_xselection() +", "; ret += ""+"xcolormap = " + get_xcolormap() +", "; ret += ""+"xclient = " + get_xclient() +", "; ret += ""+"xmapping = " + get_xmapping() +", "; ret += ""+"xerror = " + get_xerror() +", "; ret += ""+"xkeymap = " + get_xkeymap() +", "; ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + get_pad(10) + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; return ret; } -- Mi clave p?blica http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x157673683A51700A From anthony.petrov at oracle.com Fri Oct 21 04:43:43 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Fri, 21 Oct 2011 15:43:43 +0400 Subject: [RFC] Tray icons for applications are not displayed in the GNOME notification bar. In-Reply-To: <4EA07E84.2050909@redhat.com> References: <4EA07E84.2050909@redhat.com> Message-ID: <4EA15AEF.5030102@oracle.com> Hi Danesh, Overall, the fix looks reasonable. However, I see a problem with using the RuntimeMXBean.getName() method to obtain the information we need, because the specification of the method states: > Returns the name representing the running Java virtual machine. The returned name string can be any arbitrary string and a Java virtual machine implementation can choose to embed platform-specific useful information in the returned name string. Each running virtual machine could have a different name. There's no any guarantees regarding the format of the string returned. Which means that if the XToolkit code is going to be run with a VM other than, say, Hotspot, the method may return a differently formatted string, and hence this code may fail. Is there a more robust way to obtain the PID and the client FQDN? -- best regards, Anthony On 10/21/2011 12:03 AM, Danesh Dadachanji wrote: > Hi, > > There's a bug[1] with java tray icons and the new gnome-shell, the icon > is no longer displayed. GNOME has adapted an additional spec[2] from the > freedesktop standards for its notification bar (system tray). It now > requires the XAtom _NET_WM_PID to be set, which in turn needs > WM_CLIENT_MACHINE. If they aren't then things don't go smoothly and the > bar won't show the icon/embedded frame. > > The following webrev fixes the bug: > http://icedtea.classpath.org/~ddadacha/tray_icon/ > > This bug is also in jdk6 and 7 as well FWIW. > > I would appreciate any comments! > > Regards, > Danesh > > [1] Original bug report - > https://bugzilla.redhat.com/show_bug.cgi?id=683768 > [2] http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html#id2523510 From anthony.petrov at oracle.com Fri Oct 21 05:00:50 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Fri, 21 Oct 2011 16:00:50 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <1319166611.14335.25.camel@PhenomX4> References: <1319166611.14335.25.camel@PhenomX4> Message-ID: <4EA15EF2.1040900@oracle.com> Hi Federico, Indeed, this is a nasty issue. Thanks for spotting it. You may notice that in most other places where something is logged, the code usually checks whether logging is enabled for a certain level of logging, e.g.: > if (shapeLog.isLoggable(PlatformLogger.FINER)) { > shapeLog.finer( > "*** INFO: Setting shape: PEER: " + this > + "; WINDOW: " + getWindow() > + "; TARGET: " + target > + "; SHAPE: " + shape); > } So basically, we could simply wrap the line in question into a similar if(){} statement to make sure it gets executed only when the FINEST level of logging is enabled. A similar solution may also apply to another call to enableLog.finer() in the same method just a few lines below. Could you make a patch, test it, and post it to this mailing list for review please? -- best regards, Anthony On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: > Hi. > I'm running > > java -version > java version "1.7.0_147-icedtea" > OpenJDK Runtime Environment (IcedTea7 2.0pre) (7~b147-2.0~pre6-1ubuntu1) > OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) > > and profiling a simple Swing application. > > Just by opening a JFrame and moving the mouse over it for 10 secods I > see 600 MB of char[] being created. I can easily create several > terabytes or those if I move the mouse a little longer. Thanks to the > incredibly efficient garbage collector the application performance is > not visibly affected on my 4GB quad core machine. > > The problem is an incredibly inefficient method > > sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of this > message. > > The way it it handling string concatenation forces StringBuilder to grow > many times and ends up calling Arrays.copyOf a lot of times. > > It is being called by the sun.awt.X11.XWrapperBase.toString() just for > the sake of logging here: > > sun.awt.X11.XComponentPeer > > protected boolean isEventDisabled(XEvent e) > > enableLog.finest("Component is {1}, checking for disabled event {0}", e, > (isEnabled()?"enabled":"disable")); > > The worse part is that even if logging is disabled and nothing at all is > ever logged, the toString is called anyway and all those char[] are > created anyway. > > Here's a NetBeans profiler memory snapshot. > > http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 > > > This does not happen *at all* if I run the same profiling with this > openjdk version > > java -version > java version "1.6.0_23" > OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) > OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) > > I hope we can do something to improve this situation. I guess all Swing > applications are affected. > > I look forward for any comments. > > Here's the "thing"... > > --------------------------------------------------- > > String getFieldsAsString() { > String ret=""; > > ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; > ret += ""+"xany = " + get_xany() +", "; > ret += ""+"xkey = " + get_xkey() +", "; > ret += ""+"xbutton = " + get_xbutton() +", "; > ret += ""+"xmotion = " + get_xmotion() +", "; > ret += ""+"xcrossing = " + get_xcrossing() +", "; > ret += ""+"xfocus = " + get_xfocus() +", "; > ret += ""+"xexpose = " + get_xexpose() +", "; > ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; > ret += ""+"xnoexpose = " + get_xnoexpose() +", "; > ret += ""+"xvisibility = " + get_xvisibility() +", "; > ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; > ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; > ret += ""+"xunmap = " + get_xunmap() +", "; > ret += ""+"xmap = " + get_xmap() +", "; > ret += ""+"xmaprequest = " + get_xmaprequest() +", "; > ret += ""+"xreparent = " + get_xreparent() +", "; > ret += ""+"xconfigure = " + get_xconfigure() +", "; > ret += ""+"xgravity = " + get_xgravity() +", "; > ret += ""+"xresizerequest = " + get_xresizerequest() +", "; > ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; > ret += ""+"xcirculate = " + get_xcirculate() +", "; > ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; > ret += ""+"xproperty = " + get_xproperty() +", "; > ret += ""+"xselectionclear = " + get_xselectionclear() +", "; > ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; > ret += ""+"xselection = " + get_xselection() +", "; > ret += ""+"xcolormap = " + get_xcolormap() +", "; > ret += ""+"xclient = " + get_xclient() +", "; > ret += ""+"xmapping = " + get_xmapping() +", "; > ret += ""+"xerror = " + get_xerror() +", "; > ret += ""+"xkeymap = " + get_xkeymap() +", "; > ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + > get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " > " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + get_pad(10) > + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + > get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) > + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + > get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; > return ret; > } > > From federicotg at gmail.com Fri Oct 21 19:30:32 2011 From: federicotg at gmail.com (Federico) Date: Fri, 21 Oct 2011 23:30:32 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA15EF2.1040900@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> Message-ID: 2011/10/21 Anthony Petrov : > > Could you make a patch, test it, and post it to this mailing list for review > please? > Here's a patch. I tried to follow the style used in other places where one line if statements are used to avoid calling the logging code. I hope the patch is acceptable. -------------- next part -------------- A non-text attachment was scrubbed... Name: XComponentPeer.patch Type: text/x-patch Size: 2609 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111021/0377d133/XComponentPeer.patch From son.two at gmail.com Fri Oct 21 20:47:11 2011 From: son.two at gmail.com (Oleg Sukhodolsky) Date: Sat, 22 Oct 2011 07:47:11 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> Message-ID: Could you please use curly braces even for one-line ifs. It looks like it is a part of the style. Regards, Oleg. On Sat, Oct 22, 2011 at 6:30 AM, Federico wrote: > 2011/10/21 Anthony Petrov : >> >> Could you make a patch, test it, and post it to this mailing list for review >> please? >> > > Here's a patch. I tried to follow the style used in other places where > one line if statements are used to avoid calling the logging code. > > I hope the patch is acceptable. > From federicotg at gmail.com Sat Oct 22 05:23:27 2011 From: federicotg at gmail.com (Federico Tello Gentile) Date: Sat, 22 Oct 2011 09:23:27 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> Message-ID: <1319286207.2814.9.camel@PhenomX4> El s?b, 22-10-2011 a las 07:47 +0400, Oleg Sukhodolsky escribi?: > Could you please use curly braces even for one-line ifs. It looks > like it is a part of the style. > Sure I can. It is better to do so in my view. I just didn't because they are not used in 6 or 7 places in that same class. Anyway, here's the patch again. -------------- next part -------------- A non-text attachment was scrubbed... Name: XComponentPeer.java-2.patch Type: text/x-patch Size: 2768 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111022/f79d8c63/XComponentPeer.java-2.patch From anthony.petrov at oracle.com Mon Oct 24 05:49:35 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 24 Oct 2011 16:49:35 +0400 Subject: [RFC] Tray icons for applications are not displayed in the GNOME notification bar. In-Reply-To: <4EA15AEF.5030102@oracle.com> References: <4EA07E84.2050909@redhat.com> <4EA15AEF.5030102@oracle.com> Message-ID: <4EA55EDF.5080005@oracle.com> Hi Danesh, While you're at it, there's just been filed a bug report: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103610 which suggests that the mentioned window properties need to be set on all application's windows, not just the tray icon window. What do you think about extending this logic to all windows? We could add a method in the XWindowPeer class for this, and install the properties on all windows (including the tray icon - since it's an embedded frame that uses the XEmbeddedFramePeer as its peer). -- best regards, Anthony On 10/21/11 15:43, Anthony Petrov wrote: > Hi Danesh, > > Overall, the fix looks reasonable. However, I see a problem with using > the RuntimeMXBean.getName() method to obtain the information we need, > because the specification of the method states: > >> Returns the name representing the running Java virtual machine. The >> returned name string can be any arbitrary string and a Java virtual >> machine implementation can choose to embed platform-specific useful >> information in the returned name string. Each running virtual machine >> could have a different name. > > There's no any guarantees regarding the format of the string returned. > Which means that if the XToolkit code is going to be run with a VM other > than, say, Hotspot, the method may return a differently formatted > string, and hence this code may fail. > > Is there a more robust way to obtain the PID and the client FQDN? > > -- > best regards, > Anthony > > On 10/21/2011 12:03 AM, Danesh Dadachanji wrote: >> Hi, >> >> There's a bug[1] with java tray icons and the new gnome-shell, the >> icon is no longer displayed. GNOME has adapted an additional spec[2] >> from the freedesktop standards for its notification bar (system tray). >> It now requires the XAtom _NET_WM_PID to be set, which in turn needs >> WM_CLIENT_MACHINE. If they aren't then things don't go smoothly and >> the bar won't show the icon/embedded frame. >> >> The following webrev fixes the bug: >> http://icedtea.classpath.org/~ddadacha/tray_icon/ >> >> This bug is also in jdk6 and 7 as well FWIW. >> >> I would appreciate any comments! >> >> Regards, >> Danesh >> >> [1] Original bug report - >> https://bugzilla.redhat.com/show_bug.cgi?id=683768 >> [2] http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html#id2523510 From anthony.petrov at oracle.com Mon Oct 24 06:22:13 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 24 Oct 2011 17:22:13 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <1319286207.2814.9.camel@PhenomX4> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <1319286207.2814.9.camel@PhenomX4> Message-ID: <4EA56685.7060803@oracle.com> Hi Federico, Please correct the code indentation - the lines which get wrapped into an if(){} statement need to be moved 4 spaces to the right. Also, please add a space before each opening { that you're adding. Otherwise the fix looks good. Thank you! Once you post the final version of the patch, I can file a CR for this issue and push the fix to the repository. -- best regards, Anthony On 10/22/11 16:23, Federico Tello Gentile wrote: > El s?b, 22-10-2011 a las 07:47 +0400, Oleg Sukhodolsky escribi?: >> Could you please use curly braces even for one-line ifs. It looks >> like it is a part of the style. >> > > > Sure I can. It is better to do so in my view. I just didn't because they > are not used in 6 or 7 places in that same class. > > Anyway, here's the patch again. > From federicotg at gmail.com Mon Oct 24 09:59:31 2011 From: federicotg at gmail.com (Federico Tello Gentile) Date: Mon, 24 Oct 2011 13:59:31 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA56685.7060803@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <1319286207.2814.9.camel@PhenomX4> <4EA56685.7060803@oracle.com> Message-ID: <1319475571.5040.6.camel@PhenomX4> There it is. I needed to disable white space ignoring in the diff tool. So, once the CR is filed, what is the expected time frame for this change to be released? Will it be in jdk8 only or in the next jdk7 maintenance release? El lun, 24-10-2011 a las 17:22 +0400, Anthony Petrov escribi?: > Hi Federico, > > Please correct the code indentation - the lines which get wrapped into > an if(){} statement need to be moved 4 spaces to the right. > > Also, please add a space before each opening { that you're adding. > > Otherwise the fix looks good. Thank you! Once you post the final version > of the patch, I can file a CR for this issue and push the fix to the > repository. > -------------- next part -------------- A non-text attachment was scrubbed... Name: XComponentPeer.java_v3.patch Type: text/x-patch Size: 3123 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111024/827f6c22/XComponentPeer.java_v3.patch From Alan.Bateman at oracle.com Tue Oct 25 03:34:39 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Tue, 25 Oct 2011 11:34:39 +0100 Subject: jcheck conflict in jdk8/tl/jdk and awt repos: same CR # 7100054 used in two different changesets (one in tl, the other in awt forest) In-Reply-To: <4EA60104.1090008@oracle.com> References: <4EA60104.1090008@oracle.com> Message-ID: <4EA690BF.4000605@oracle.com> On 25/10/2011 01:21, Lana Steuck wrote: > To: TL and Awt teams > What: we have a jcheck conflict in jdk8/tl/jdk and jdk8/awt/jdk repos: > same Bugid # 7100054 used in two different changesets (one in > tl/jdk, the other in awt/jdk repo) > > http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f218e6bdf1e8 > http://hg.openjdk.java.net/jdk8/tl/jdk/rev/c3da0672a882 > > neil.richards at ngmr.net > 7100054: (porting) Native code should include fcntl.h and unistd.h > rather than sys/fcntl.h and sys/unistd.h > Summary: Use POSIX defined includes for unistd.h and fcntl.h I think I may be partly to blame here. Neil did ask whether he needed a separate CR for the AWT change and I told him ([1]) that one was sufficient. I didn't realize he was thinking of splitting the changes though as there wasn't any real need to do this for this. -Alan [1] http://mail.openjdk.java.net/pipermail/core-libs-dev/2011-October/007926.html -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111025/587af35e/attachment.html From anthony.petrov at oracle.com Tue Oct 25 04:55:26 2011 From: anthony.petrov at oracle.com (anthony.petrov at oracle.com) Date: Tue, 25 Oct 2011 11:55:26 +0000 Subject: hg: jdk8/awt/jdk: 7104625: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason Message-ID: <20111025115548.10AFE47110@hg.openjdk.java.net> Changeset: 0cfee23bbd5c Author: anthony Date: 2011-10-25 15:55 +0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/0cfee23bbd5c 7104625: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason Summary: Wrap logging calls with if(){} statements Reviewed-by: anthony, son Contributed-by: Federico Tello Gentile ! src/solaris/classes/sun/awt/X11/XComponentPeer.java From anthony.petrov at oracle.com Tue Oct 25 05:09:43 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 25 Oct 2011 16:09:43 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <1319475571.5040.6.camel@PhenomX4> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <1319286207.2814.9.camel@PhenomX4> <4EA56685.7060803@oracle.com> <1319475571.5040.6.camel@PhenomX4> Message-ID: <4EA6A707.9080504@oracle.com> Hi Federico, Thank you very much for your contribution! The patch has just been pushed to the awt repository for JDK8. Porting it to a JDK7 update release may take some. -- best regards, Anthony On 10/24/2011 8:59 PM, Federico Tello Gentile wrote: > There it is. > I needed to disable white space ignoring in the diff tool. > > So, once the CR is filed, what is the expected time frame for this > change to be released? Will it be in jdk8 only or in the next jdk7 > maintenance release? > > > El lun, 24-10-2011 a las 17:22 +0400, Anthony Petrov escribi?: >> Hi Federico, >> >> Please correct the code indentation - the lines which get wrapped into >> an if(){} statement need to be moved 4 spaces to the right. >> >> Also, please add a space before each opening { that you're adding. >> >> Otherwise the fix looks good. Thank you! Once you post the final version >> of the patch, I can file a CR for this issue and push the fix to the >> repository. >> > From ddadacha at redhat.com Tue Oct 25 11:00:30 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 25 Oct 2011 14:00:30 -0400 Subject: [RFC] Tray icons for applications are not displayed in the GNOME notification bar. In-Reply-To: <4EA55EDF.5080005@oracle.com> References: <4EA07E84.2050909@redhat.com> <4EA15AEF.5030102@oracle.com> <4EA55EDF.5080005@oracle.com> Message-ID: <4EA6F93E.7070707@redhat.com> Hi Anthony, Thanks for the comments. On 24/10/11 08:49 AM, Anthony Petrov wrote: > Hi Danesh, > > While you're at it, there's just been filed a bug report: > > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103610 WM_CLASS is already set to something relative to what is being run. E.g. when using xprop on a Frame $ xprop WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "test-TestFrame" Reading the specs of WM_CLASS[1], I think the above is incorrect. I believe "test-TestFrame" makes more sense as the first st ring, the instance name. As for the second one, from my understanding of the spec, you would want it to be set to something more generic that. Do you think "Java" is a better option? > > which suggests that the mentioned window properties need to be set on > all application's windows, not just the tray icon window. What do you > think about extending this logic to all windows? We could add a method > in the XWindowPeer class for this, and install the properties on all > windows (including the tray icon - since it's an embedded frame that > uses the XEmbeddedFramePeer as its peer). > If all app windows need to be set, wouldn't this mean all X components as well? In which case, how does adding the code to XBaseWidnow (looking specifically at init) sound? [snip] >> There's no any guarantees regarding the format of the string returned. >> Which means that if the XToolkit code is going to be run with a VM other >> than, say, Hotspot, the method may return a differently formatted >> string, and hence this code may fail. >> >> Is there a more robust way to obtain the PID and the client FQDN? For the PID, I think using JNI to access getpid() would be the next best option. I'll look for another way to find the FQDN. >> >> -- >> best regards, >> Anthony >> Regards, Danesh [1] http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5 From artem.ananiev at oracle.com Wed Oct 26 04:41:08 2011 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 26 Oct 2011 15:41:08 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov Message-ID: <4EA7F1D4.3090701@oracle.com> I hereby nominate Sergey Bylokhov to Membership in the AWT Group. Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and been actively contributing to the AWT part of the Mac OS X OpenJDK port. Votes are due by November 10, 2011. Only current Members of the AWT Group [1] are eligible to vote on this nomination. For Lazy Consensus voting instructions, see [2]. Thanks, Artem [1] http://openjdk.java.net/census#awt [2] http://openjdk.java.net/groups#member-vote From son.two at gmail.com Wed Oct 26 04:51:52 2011 From: son.two at gmail.com (Oleg Sukhodolsky) Date: Wed, 26 Oct 2011 15:51:52 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: +1 On Wed, Oct 26, 2011 at 3:41 PM, Artem Ananiev wrote: > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and been > actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > > From anthony.petrov at oracle.com Wed Oct 26 04:53:07 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 26 Oct 2011 15:53:07 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: <4EA7F4A3.80705@oracle.com> Vote: YES -- best regards, Anthony On 10/26/2011 3:41 PM, Artem Ananiev wrote: > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and > been actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > From alexey.utkin at oracle.com Wed Oct 26 05:00:34 2011 From: alexey.utkin at oracle.com (Alexey Utkin) Date: Wed, 26 Oct 2011 16:00:34 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: <4EA7F662.4010708@oracle.com> +1 On 10/26/2011 15:41, Artem Ananiev wrote: > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and > been actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > > From alexey.utkin at oracle.com Wed Oct 26 05:29:37 2011 From: alexey.utkin at oracle.com (Alexey Utkin) Date: Wed, 26 Oct 2011 16:29:37 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7FB2C.40506@oracle.com> References: <4EA7F1D4.3090701@oracle.com> <4EA7F662.4010708@oracle.com> <4EA7FB2C.40506@oracle.com> Message-ID: <4EA7FD31.5010400@oracle.com> Vote: YES || On 10/26/2011 16:21, David Holmes wrote: > Alexey, > > This is a formal vote, you must use the proper format: > > >> [2] http://openjdk.java.net/groups#member-vote > > Cheers, > David > > On 26/10/2011 10:00 PM, Alexey Utkin wrote: >> +1 >> >> On 10/26/2011 15:41, Artem Ananiev wrote: >>> >>> I hereby nominate Sergey Bylokhov to Membership in the AWT Group. >>> >>> Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and >>> been actively contributing to the AWT part of the Mac OS X OpenJDK >>> port. >>> >>> Votes are due by November 10, 2011. >>> >>> Only current Members of the AWT Group [1] are eligible to vote on this >>> nomination. >>> >>> For Lazy Consensus voting instructions, see [2]. >>> >>> Thanks, >>> >>> Artem >>> >>> [1] http://openjdk.java.net/census#awt >>> [2] http://openjdk.java.net/groups#member-vote >>> >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111026/641a8402/attachment.html From yuri.nesterenko at oracle.com Wed Oct 26 05:42:03 2011 From: yuri.nesterenko at oracle.com (Yuri Nesterenko) Date: Wed, 26 Oct 2011 16:42:03 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: <4EA8001B.1010804@oracle.com> Vote YES On 10/26/2011 03:41 PM, Artem Ananiev wrote: > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and > been actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > From anton.tarasov at oracle.com Wed Oct 26 05:42:08 2011 From: anton.tarasov at oracle.com (Anton Tarasov) Date: Wed, 26 Oct 2011 16:42:08 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: <4EA80020.3090600@oracle.com> Vote: YES On 10/26/2011 3:41 PM, Artem Ananiev wrote: > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and > been actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > From anthony.petrov at oracle.com Wed Oct 26 05:56:38 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 26 Oct 2011 16:56:38 +0400 Subject: [RFC] Tray icons for applications are not displayed in the GNOME notification bar. In-Reply-To: <4EA6F93E.7070707@redhat.com> References: <4EA07E84.2050909@redhat.com> <4EA15AEF.5030102@oracle.com> <4EA55EDF.5080005@oracle.com> <4EA6F93E.7070707@redhat.com> Message-ID: <4EA80386.7080906@oracle.com> Hi Danesh, On 10/25/2011 10:00 PM, Danesh Dadachanji wrote: > On 24/10/11 08:49 AM, Anthony Petrov wrote: >> While you're at it, there's just been filed a bug report: >> >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103610 > > WM_CLASS is already set to something relative to what is being run. E.g. > when using xprop on a Frame > $ xprop > WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "test-TestFrame" > > Reading the specs of WM_CLASS[1], I think the above is incorrect. I > believe "test-TestFrame" makes more sense as the first st ring, the > instance name. > > As for the second one, from my understanding of the spec, you would want > it to be set to something more generic that. Do you think "Java" is a > better option? I agree that the strings might be in the inverse order currently, and it would be nice to have them in the correct order. There's some sense in using the "sun-awt-X11-XFramePeer" however, since it may be used to distinguish between apps run using the XToolkit, and legacy MToolkit (removed in JDK7, but still available for apps run with JDK6 and earlier). If in the future we introduce some alternative AWT toolkit, then having the toolkit name in the string might be useful. Having said that, I don't think we should change the value of the property. There's two reasons: 1. The WM_CLASS property is used to look up X resources for the app. Java apps (and AWT itself) have never used X resources, and as such it actually doesn't matter at all what is specified in these property. 2. Some developers may rely on the current order of the strings if they want to look up Java windows from their native apps, for example. If we change the order now, we may break these use cases. While the order has never been specified, I don't see a good reason for this change at this time. >> which suggests that the mentioned window properties need to be set on >> all application's windows, not just the tray icon window. What do you >> think about extending this logic to all windows? We could add a method >> in the XWindowPeer class for this, and install the properties on all >> windows (including the tray icon - since it's an embedded frame that >> uses the XEmbeddedFramePeer as its peer). >> > > If all app windows need to be set, wouldn't this mean all X components > as well? In which case, how does adding the code to XBaseWidnow (looking > specifically at init) sound? I don't think so. The window properties are used by the window manager (mostly). The window manager will never see our child windows, and as such setting the property for them seems useless. >>> There's no any guarantees regarding the format of the string returned. >>> Which means that if the XToolkit code is going to be run with a VM other >>> than, say, Hotspot, the method may return a differently formatted >>> string, and hence this code may fail. >>> >>> Is there a more robust way to obtain the PID and the client FQDN? > > For the PID, I think using JNI to access getpid() would be the next best > option. I'll look for another way to find the FQDN. Yes, using getpid() via JNI seems reasonable. I guess gethostname() from unistd.h might be used to obtain the FQDN. -- best regards, Anthony From pavel.porvatov at oracle.com Wed Oct 26 06:27:22 2011 From: pavel.porvatov at oracle.com (Pavel Porvatov) Date: Wed, 26 Oct 2011 17:27:22 +0400 Subject: CFV: New AWT Group Member: Sergey Bylokhov In-Reply-To: <4EA7F1D4.3090701@oracle.com> References: <4EA7F1D4.3090701@oracle.com> Message-ID: <4EA80ABA.5020708@oracle.com> Vote YES > > I hereby nominate Sergey Bylokhov to Membership in the AWT Group. > > Sergey has fixed a number of AWT bugs in JDK7u and JDK8 projects and > been actively contributing to the AWT part of the Mac OS X OpenJDK port. > > Votes are due by November 10, 2011. > > Only current Members of the AWT Group [1] are eligible to vote on this > nomination. > > For Lazy Consensus voting instructions, see [2]. > > Thanks, > > Artem > > [1] http://openjdk.java.net/census#awt > [2] http://openjdk.java.net/groups#member-vote > From littlee at linux.vnet.ibm.com Wed Oct 12 00:52:50 2011 From: littlee at linux.vnet.ibm.com (Charles Lee) Date: Wed, 12 Oct 2011 15:52:50 +0800 Subject: Request for review - change two include header files according to POSIX.1-2008 In-Reply-To: <4E95436C.10307@oracle.com> References: <4E953300.9000208@linux.vnet.ibm.com> <4E953DCC.5060600@oracle.com> <4E954066.9030001@linux.vnet.ibm.com> <4E95436C.10307@oracle.com> Message-ID: <4E954752.4070306@linux.vnet.ibm.com> On 10/12/2011 03:36 PM, David Holmes wrote: > On 12/10/2011 5:23 PM, Charles Lee wrote: >> On 10/12/2011 03:12 PM, David Holmes wrote: >>> On 12/10/2011 4:26 PM, Charles Lee wrote: >>>> sys/unistd.h, sys/fcntl.h are not supported in AIX. And according >>>> to the >>>> POSIX.1-2008 (http://pubs.opengroup.org/onlinepubs/9699919799/), I >>>> have >>>> changed them to unistd.h and fcntl.h. The patch has been tested on >>>> both >>>> linux and aix. >>>> >>>> I also change the header file in solaris, though I do not have a >>>> solaris >>>> machine on the hand. Hope it will not break the build :-) >>> >>> unistd.h and fcntl.h are already used extensively on Solaris >>> >>>> The patch and webrev has been attached. >>> >>> Looks like they were stripped of the email. (And of the second >>> attempt.) >>> >>> By grepping I assume the splashscreen_config.h file is one place this >>> was fixed for unistd.h. It is interesting to note that in some cases >>> at least (eg splashscreen_sys.c) the C file includes anyway. >> >> Yes. Only splashscreen_config.h has > > Ok. I've cc'ed awt-dev as this is awt code. > >>> >>> We'll need to verify the changes for in the >>> genUnixConstants code. There tends to be a reason (often historical >>> and possibly no longer applicable) for using the sys variants (though >>> sometimes it was just that the non-sys version didn't exist at some >>> point in time). >>> >> >> By grep, only genUnixConstants.c and genSolarisConstants.c use >> in the jdk repository. And more than 20 files use >> > > Yep. And the fcntl manpage on Solaris says to #include and > - so I think we're okay there. I suspect Solaris 8 may be a > different story but that's only an issue for JDK6. > > David > >>> Cheers, >>> David Holmes >> >> Trying to attach a plain diff file again and again.... >> > Patch inlined for AWT-dev folk to see. > > diff --git > src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > index bb03165..e312c2b 100644 > --- src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > +++ src/solaris/native/sun/awt/splashscreen/splashscreen_config.h > @@ -32,7 +32,7 @@ > #include > #include > #include > -#include > +#include > #include > #include > #include > diff --git src/solaris/native/sun/nio/fs/genSolarisConstants.c > src/solaris/native/sun/nio/fs/genSolarisConstants.c > index df46398..346bfbb 100644 > --- src/solaris/native/sun/nio/fs/genSolarisConstants.c > +++ src/solaris/native/sun/nio/fs/genSolarisConstants.c > @@ -27,7 +27,7 @@ > #include > #include > #include > -#include > +#include > #include > > /** > diff --git src/solaris/native/sun/nio/fs/genUnixConstants.c > src/solaris/native/sun/nio/fs/genUnixConstants.c > index ea48d4d..56984a7 100644 > --- src/solaris/native/sun/nio/fs/genUnixConstants.c > +++ src/solaris/native/sun/nio/fs/genUnixConstants.c > @@ -26,7 +26,7 @@ > #include > #include > #include > -#include > +#include > #include > > /** > Wow. Thank you David. -- Yours Charles From artem.ananiev at oracle.com Wed Oct 26 08:12:55 2011 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 26 Oct 2011 19:12:55 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA15EF2.1040900@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> Message-ID: <4EA82377.2050607@oracle.com> On 10/21/2011 4:00 PM, Anthony Petrov wrote: > Hi Federico, > > Indeed, this is a nasty issue. Thanks for spotting it. You may notice > that in most other places where something is logged, the code usually > checks whether logging is enabled for a certain level of logging, e.g.: > >> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >> shapeLog.finer( >> "*** INFO: Setting shape: PEER: " + this >> + "; WINDOW: " + getWindow() >> + "; TARGET: " + target >> + "; SHAPE: " + shape); >> } > > So basically, we could simply wrap the line in question into a similar > if(){} statement to make sure it gets executed only when the FINEST > level of logging is enabled. A similar solution may also apply to > another call to enableLog.finer() in the same method just a few lines > below. Although the fix has been already pushed to the workspace, let me wonder if, in addition to wrapping the logging calls with the "if ()" checks, we should have also rewritten isEventDisabled() to use StringBuilder? Thanks, Artem > Could you make a patch, test it, and post it to this mailing list for > review please? > > -- > best regards, > Anthony > > On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >> Hi. >> I'm running >> >> java -version >> java version "1.7.0_147-icedtea" >> OpenJDK Runtime Environment (IcedTea7 2.0pre) (7~b147-2.0~pre6-1ubuntu1) >> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >> >> and profiling a simple Swing application. >> >> Just by opening a JFrame and moving the mouse over it for 10 secods I >> see 600 MB of char[] being created. I can easily create several >> terabytes or those if I move the mouse a little longer. Thanks to the >> incredibly efficient garbage collector the application performance is >> not visibly affected on my 4GB quad core machine. >> >> The problem is an incredibly inefficient method >> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of this >> message. >> >> The way it it handling string concatenation forces StringBuilder to grow >> many times and ends up calling Arrays.copyOf a lot of times. >> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >> the sake of logging here: >> >> sun.awt.X11.XComponentPeer >> >> protected boolean isEventDisabled(XEvent e) >> >> enableLog.finest("Component is {1}, checking for disabled event {0}", e, >> (isEnabled()?"enabled":"disable")); >> >> The worse part is that even if logging is disabled and nothing at all is >> ever logged, the toString is called anyway and all those char[] are >> created anyway. >> >> Here's a NetBeans profiler memory snapshot. >> >> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >> >> >> This does not happen *at all* if I run the same profiling with this >> openjdk version >> >> java -version >> java version "1.6.0_23" >> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >> >> I hope we can do something to improve this situation. I guess all Swing >> applications are affected. >> >> I look forward for any comments. >> >> Here's the "thing"... >> >> --------------------------------------------------- >> >> String getFieldsAsString() { >> String ret=""; >> >> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >> ret += ""+"xany = " + get_xany() +", "; >> ret += ""+"xkey = " + get_xkey() +", "; >> ret += ""+"xbutton = " + get_xbutton() +", "; >> ret += ""+"xmotion = " + get_xmotion() +", "; >> ret += ""+"xcrossing = " + get_xcrossing() +", "; >> ret += ""+"xfocus = " + get_xfocus() +", "; >> ret += ""+"xexpose = " + get_xexpose() +", "; >> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >> ret += ""+"xvisibility = " + get_xvisibility() +", "; >> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >> ret += ""+"xunmap = " + get_xunmap() +", "; >> ret += ""+"xmap = " + get_xmap() +", "; >> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >> ret += ""+"xreparent = " + get_xreparent() +", "; >> ret += ""+"xconfigure = " + get_xconfigure() +", "; >> ret += ""+"xgravity = " + get_xgravity() +", "; >> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >> ret += ""+"xcirculate = " + get_xcirculate() +", "; >> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >> ret += ""+"xproperty = " + get_xproperty() +", "; >> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >> ret += ""+"xselection = " + get_xselection() +", "; >> ret += ""+"xcolormap = " + get_xcolormap() +", "; >> ret += ""+"xclient = " + get_xclient() +", "; >> ret += ""+"xmapping = " + get_xmapping() +", "; >> ret += ""+"xerror = " + get_xerror() +", "; >> ret += ""+"xkeymap = " + get_xkeymap() +", "; >> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + get_pad(10) >> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >> return ret; >> } >> >> From artem.ananiev at oracle.com Wed Oct 26 08:27:35 2011 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 26 Oct 2011 19:27:35 +0400 Subject: What to override and what now In-Reply-To: References: Message-ID: <4EA826E7.7070801@oracle.com> On 10/15/2011 12:30 AM, Mario Torre wrote: > While working a bit on cacio, we just found some new nice addition to the Toolkit code, like this one: > > public boolean areExtraMouseButtonsEnabled() throws HeadlessException { > GraphicsEnvironment.checkHeadless(); > > return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); > } > > Of course, this method is meant to be overridden, so it will end up doing nothing, but things like this may be very difficult to debug at times, and in any case, is definitely are not friendly code. Is there any reason for this smartness? I completely agree. This code seems to be never called, otherwise it would fail into an infinite recursion, it shouldn't be any problems with it returning "false". > Why not simply provide a default implementation or just throw an exception or simply make the method abstract? Or maybe I'm missing something? Making it abstract is not a good idea: I know some rare cases when the Toolkit class is extended (e.g. for testing purposes), and adding a new abstract method will break such code at compile time. > I hope there are not many more of those examples scattered around, or to know what to subclass and override will be a pain. Thanks, Artem > Cheers, > Mario > --- > pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF > Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF > > http://www.ladybug-studio.com > > IcedRobot: www.icedrobot.org > Proud GNU Classpath developer: http://www.classpath.org/ > Read About us at: http://planet.classpath.org > OpenJDK: http://openjdk.java.net/projects/caciocavallo/ > > Please, support open standards: > http://endsoftpatents.org/ > > > > From anthony.petrov at oracle.com Wed Oct 26 08:26:55 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 26 Oct 2011 19:26:55 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA82377.2050607@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> Message-ID: <4EA826BF.6090405@oracle.com> On 10/26/2011 7:12 PM, Artem Ananiev wrote: > On 10/21/2011 4:00 PM, Anthony Petrov wrote: >> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >> that in most other places where something is logged, the code usually >> checks whether logging is enabled for a certain level of logging, e.g.: >> >>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>> shapeLog.finer( >>> "*** INFO: Setting shape: PEER: " + this >>> + "; WINDOW: " + getWindow() >>> + "; TARGET: " + target >>> + "; SHAPE: " + shape); >>> } >> >> So basically, we could simply wrap the line in question into a similar >> if(){} statement to make sure it gets executed only when the FINEST >> level of logging is enabled. A similar solution may also apply to >> another call to enableLog.finer() in the same method just a few lines >> below. > > Although the fix has been already pushed to the workspace, let me wonder > if, in addition to wrapping the logging calls with the "if ()" checks, > we should have also rewritten isEventDisabled() to use StringBuilder? I guess you really mean the XEvent.getFieldsAsString() here [1], right? Possibly. But with Federico's fix this method now only gets called when logging is enabled, and as such the impact of the issue is limited. [1] http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html -- best regards, Anthony > > Thanks, > > Artem > >> Could you make a patch, test it, and post it to this mailing list for >> review please? >> >> -- >> best regards, >> Anthony >> >> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>> Hi. >>> I'm running >>> >>> java -version >>> java version "1.7.0_147-icedtea" >>> OpenJDK Runtime Environment (IcedTea7 2.0pre) (7~b147-2.0~pre6-1ubuntu1) >>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>> >>> and profiling a simple Swing application. >>> >>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>> see 600 MB of char[] being created. I can easily create several >>> terabytes or those if I move the mouse a little longer. Thanks to the >>> incredibly efficient garbage collector the application performance is >>> not visibly affected on my 4GB quad core machine. >>> >>> The problem is an incredibly inefficient method >>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of this >>> message. >>> >>> The way it it handling string concatenation forces StringBuilder to grow >>> many times and ends up calling Arrays.copyOf a lot of times. >>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>> the sake of logging here: >>> >>> sun.awt.X11.XComponentPeer >>> >>> protected boolean isEventDisabled(XEvent e) >>> >>> enableLog.finest("Component is {1}, checking for disabled event {0}", e, >>> (isEnabled()?"enabled":"disable")); >>> >>> The worse part is that even if logging is disabled and nothing at all is >>> ever logged, the toString is called anyway and all those char[] are >>> created anyway. >>> >>> Here's a NetBeans profiler memory snapshot. >>> >>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>> >>> >>> This does not happen *at all* if I run the same profiling with this >>> openjdk version >>> >>> java -version >>> java version "1.6.0_23" >>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>> >>> I hope we can do something to improve this situation. I guess all Swing >>> applications are affected. >>> >>> I look forward for any comments. >>> >>> Here's the "thing"... >>> >>> --------------------------------------------------- >>> >>> String getFieldsAsString() { >>> String ret=""; >>> >>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>> ret += ""+"xany = " + get_xany() +", "; >>> ret += ""+"xkey = " + get_xkey() +", "; >>> ret += ""+"xbutton = " + get_xbutton() +", "; >>> ret += ""+"xmotion = " + get_xmotion() +", "; >>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>> ret += ""+"xfocus = " + get_xfocus() +", "; >>> ret += ""+"xexpose = " + get_xexpose() +", "; >>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>> ret += ""+"xunmap = " + get_xunmap() +", "; >>> ret += ""+"xmap = " + get_xmap() +", "; >>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>> ret += ""+"xreparent = " + get_xreparent() +", "; >>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>> ret += ""+"xgravity = " + get_xgravity() +", "; >>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>> ret += ""+"xproperty = " + get_xproperty() +", "; >>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>> ret += ""+"xselection = " + get_xselection() +", "; >>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>> ret += ""+"xclient = " + get_xclient() +", "; >>> ret += ""+"xmapping = " + get_xmapping() +", "; >>> ret += ""+"xerror = " + get_xerror() +", "; >>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + get_pad(10) >>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>> return ret; >>> } >>> >>> From artem.ananiev at oracle.com Wed Oct 26 08:34:16 2011 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Wed, 26 Oct 2011 19:34:16 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA826BF.6090405@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> Message-ID: <4EA82878.9020506@oracle.com> On 10/26/2011 7:26 PM, Anthony Petrov wrote: > On 10/26/2011 7:12 PM, Artem Ananiev wrote: >> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >>> that in most other places where something is logged, the code usually >>> checks whether logging is enabled for a certain level of logging, e.g.: >>> >>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>> shapeLog.finer( >>>> "*** INFO: Setting shape: PEER: " + this >>>> + "; WINDOW: " + getWindow() >>>> + "; TARGET: " + target >>>> + "; SHAPE: " + shape); >>>> } >>> >>> So basically, we could simply wrap the line in question into a similar >>> if(){} statement to make sure it gets executed only when the FINEST >>> level of logging is enabled. A similar solution may also apply to >>> another call to enableLog.finer() in the same method just a few lines >>> below. >> >> Although the fix has been already pushed to the workspace, let me >> wonder if, in addition to wrapping the logging calls with the "if ()" >> checks, we should have also rewritten isEventDisabled() to use >> StringBuilder? > > I guess you really mean the XEvent.getFieldsAsString() here [1], right? Yes, exactly. Thanks for this correction. > Possibly. But with Federico's fix this method now only gets called when > logging is enabled, and as such the impact of the issue is limited. I realize that. My point is that we just hide the problem, or make it less visible, or make it appear less frequently - whatever you prefer. However, the problematic code that contains char[] allocation is still in the workspace, and we know how often people use the current code as a pattern for future changes... Thanks, Artem > [1] http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html > > -- > best regards, > Anthony > > >> >> Thanks, >> >> Artem >> >>> Could you make a patch, test it, and post it to this mailing list for >>> review please? >>> >>> -- >>> best regards, >>> Anthony >>> >>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>> Hi. >>>> I'm running >>>> >>>> java -version >>>> java version "1.7.0_147-icedtea" >>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>> (7~b147-2.0~pre6-1ubuntu1) >>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>> >>>> and profiling a simple Swing application. >>>> >>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>>> see 600 MB of char[] being created. I can easily create several >>>> terabytes or those if I move the mouse a little longer. Thanks to the >>>> incredibly efficient garbage collector the application performance is >>>> not visibly affected on my 4GB quad core machine. >>>> >>>> The problem is an incredibly inefficient method >>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >>>> this >>>> message. >>>> >>>> The way it it handling string concatenation forces StringBuilder to >>>> grow >>>> many times and ends up calling Arrays.copyOf a lot of times. >>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>>> the sake of logging here: >>>> >>>> sun.awt.X11.XComponentPeer >>>> >>>> protected boolean isEventDisabled(XEvent e) >>>> >>>> enableLog.finest("Component is {1}, checking for disabled event >>>> {0}", e, >>>> (isEnabled()?"enabled":"disable")); >>>> >>>> The worse part is that even if logging is disabled and nothing at >>>> all is >>>> ever logged, the toString is called anyway and all those char[] are >>>> created anyway. >>>> >>>> Here's a NetBeans profiler memory snapshot. >>>> >>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>> >>>> >>>> This does not happen *at all* if I run the same profiling with this >>>> openjdk version >>>> >>>> java -version >>>> java version "1.6.0_23" >>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>> >>>> I hope we can do something to improve this situation. I guess all Swing >>>> applications are affected. >>>> >>>> I look forward for any comments. >>>> >>>> Here's the "thing"... >>>> >>>> --------------------------------------------------- >>>> >>>> String getFieldsAsString() { >>>> String ret=""; >>>> >>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>>> ret += ""+"xany = " + get_xany() +", "; >>>> ret += ""+"xkey = " + get_xkey() +", "; >>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>> ret += ""+"xmap = " + get_xmap() +", "; >>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>>> ret += ""+"xselection = " + get_xselection() +", "; >>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>> ret += ""+"xclient = " + get_xclient() +", "; >>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>> ret += ""+"xerror = " + get_xerror() +", "; >>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>> get_pad(10) >>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>> return ret; >>>> } >>>> >>>> From son.two at gmail.com Wed Oct 26 09:40:21 2011 From: son.two at gmail.com (Oleg Sukhodolsky) Date: Wed, 26 Oct 2011 20:40:21 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA82878.9020506@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> Message-ID: +1 to Artem. It is better to fix this too. Oleg. On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: > > On 10/26/2011 7:26 PM, Anthony Petrov wrote: >> >> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >>> >>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>>> >>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >>>> that in most other places where something is logged, the code usually >>>> checks whether logging is enabled for a certain level of logging, e.g.: >>>> >>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>>> shapeLog.finer( >>>>> "*** INFO: Setting shape: PEER: " + this >>>>> + "; WINDOW: " + getWindow() >>>>> + "; TARGET: " + target >>>>> + "; SHAPE: " + shape); >>>>> } >>>> >>>> So basically, we could simply wrap the line in question into a similar >>>> if(){} statement to make sure it gets executed only when the FINEST >>>> level of logging is enabled. A similar solution may also apply to >>>> another call to enableLog.finer() in the same method just a few lines >>>> below. >>> >>> Although the fix has been already pushed to the workspace, let me >>> wonder if, in addition to wrapping the logging calls with the "if ()" >>> checks, we should have also rewritten isEventDisabled() to use >>> StringBuilder? >> >> I guess you really mean the XEvent.getFieldsAsString() here [1], right? > > Yes, exactly. Thanks for this correction. > >> Possibly. But with Federico's fix this method now only gets called when >> logging is enabled, and as such the impact of the issue is limited. > > I realize that. My point is that we just hide the problem, or make it less > visible, or make it appear less frequently - whatever you prefer. However, > the problematic code that contains char[] allocation is still in the > workspace, and we know how often people use the current code as a pattern > for future changes... > > Thanks, > > Artem > >> [1] >> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >> >> -- >> best regards, >> Anthony >> >> >>> >>> Thanks, >>> >>> Artem >>> >>>> Could you make a patch, test it, and post it to this mailing list for >>>> review please? >>>> >>>> -- >>>> best regards, >>>> Anthony >>>> >>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>>> >>>>> Hi. >>>>> I'm running >>>>> >>>>> java -version >>>>> java version "1.7.0_147-icedtea" >>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>>> (7~b147-2.0~pre6-1ubuntu1) >>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>>> >>>>> and profiling a simple Swing application. >>>>> >>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>>>> see 600 MB of char[] being created. I can easily create several >>>>> terabytes or those if I move the mouse a little longer. Thanks to the >>>>> incredibly efficient garbage collector the application performance is >>>>> not visibly affected on my 4GB quad core machine. >>>>> >>>>> The problem is an incredibly inefficient method >>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >>>>> this >>>>> message. >>>>> >>>>> The way it it handling string concatenation forces StringBuilder to >>>>> grow >>>>> many times and ends up calling Arrays.copyOf a lot of times. >>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>>>> the sake of logging here: >>>>> >>>>> sun.awt.X11.XComponentPeer >>>>> >>>>> protected boolean isEventDisabled(XEvent e) >>>>> >>>>> enableLog.finest("Component is {1}, checking for disabled event >>>>> {0}", e, >>>>> (isEnabled()?"enabled":"disable")); >>>>> >>>>> The worse part is that even if logging is disabled and nothing at >>>>> all is >>>>> ever logged, the toString is called anyway and all those char[] are >>>>> created anyway. >>>>> >>>>> Here's a NetBeans profiler memory snapshot. >>>>> >>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>>> >>>>> >>>>> This does not happen *at all* if I run the same profiling with this >>>>> openjdk version >>>>> >>>>> java -version >>>>> java version "1.6.0_23" >>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>>> >>>>> I hope we can do something to improve this situation. I guess all Swing >>>>> applications are affected. >>>>> >>>>> I look forward for any comments. >>>>> >>>>> Here's the "thing"... >>>>> >>>>> --------------------------------------------------- >>>>> >>>>> String getFieldsAsString() { >>>>> String ret=""; >>>>> >>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>>>> ret += ""+"xany = " + get_xany() +", "; >>>>> ret += ""+"xkey = " + get_xkey() +", "; >>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>>> ret += ""+"xmap = " + get_xmap() +", "; >>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>>>> ret += ""+"xselection = " + get_xselection() +", "; >>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>>> ret += ""+"xclient = " + get_xclient() +", "; >>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>>> ret += ""+"xerror = " + get_xerror() +", "; >>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>>> get_pad(10) >>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>>> return ret; >>>>> } >>>>> >>>>> > From neugens.limasoftware at gmail.com Wed Oct 26 10:19:51 2011 From: neugens.limasoftware at gmail.com (Mario Torre) Date: Wed, 26 Oct 2011 19:19:51 +0200 Subject: What to override and what now In-Reply-To: <4EA826E7.7070801@oracle.com> References: <4EA826E7.7070801@oracle.com> Message-ID: <61A22FD8-1C56-4891-8A9F-673526AB91C5@gmail.com> Ok then, I'll upload you a webrew patch for JDK8 later for review :) I need a bug id I guess. Cheers, Mario --- pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF http://www.ladybug-studio.com IcedRobot: www.icedrobot.org Proud GNU Classpath developer: http://www.classpath.org/ Read About us at: http://planet.classpath.org OpenJDK: http://openjdk.java.net/projects/caciocavallo/ Please, support open standards: http://endsoftpatents.org/ Il giorno 26/ott/2011, alle ore 17:27, Artem Ananiev ha scritto: > > On 10/15/2011 12:30 AM, Mario Torre wrote: >> While working a bit on cacio, we just found some new nice addition to the Toolkit code, like this one: >> >> public boolean areExtraMouseButtonsEnabled() throws HeadlessException { >> GraphicsEnvironment.checkHeadless(); >> >> return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); >> } >> >> Of course, this method is meant to be overridden, so it will end up doing nothing, but things like this may be very difficult to debug at times, and in any case, is definitely are not friendly code. Is there any reason for this smartness? > > I completely agree. This code seems to be never called, otherwise it would fail into an infinite recursion, it shouldn't be any problems with it returning "false". > >> Why not simply provide a default implementation or just throw an exception or simply make the method abstract? Or maybe I'm missing something? > > Making it abstract is not a good idea: I know some rare cases when the Toolkit class is extended (e.g. for testing purposes), and adding a new abstract method will break such code at compile time. > >> I hope there are not many more of those examples scattered around, or to know what to subclass and override will be a pain. > > Thanks, > > Artem > >> Cheers, >> Mario >> --- >> pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF >> Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF >> >> http://www.ladybug-studio.com >> >> IcedRobot: www.icedrobot.org >> Proud GNU Classpath developer: http://www.classpath.org/ >> Read About us at: http://planet.classpath.org >> OpenJDK: http://openjdk.java.net/projects/caciocavallo/ >> >> Please, support open standards: >> http://endsoftpatents.org/ >> >> >> >> From roman at kennke.org Wed Oct 26 10:22:31 2011 From: roman at kennke.org (Roman Kennke) Date: Wed, 26 Oct 2011 19:22:31 +0200 Subject: [OpenJDK 2D-Dev] What to override and what now In-Reply-To: <4EA826E7.7070801@oracle.com> References: <4EA826E7.7070801@oracle.com> Message-ID: <1319649751.2666.2.camel@moonlight> Hi Artem, > > While working a bit on cacio, we just found some new nice addition to the Toolkit code, like this one: > > > > public boolean areExtraMouseButtonsEnabled() throws HeadlessException { > > GraphicsEnvironment.checkHeadless(); > > > > return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); > > } > > > > Of course, this method is meant to be overridden, so it will end up doing nothing, but things like this may be very difficult to debug at times, and in any case, is definitely are not friendly code. Is there any reason for this smartness? > > I completely agree. This code seems to be never called, otherwise it > would fail into an infinite recursion, it shouldn't be any problems with > it returning "false". Why not make it throw an exception? This way it would be very easy to find out what is wrong. Returning null, false, -1 etc might make your code blow up much later and it takes some debugging to figure out what is wrong. > > Why not simply provide a default implementation or just throw an exception or simply make the method abstract? Or maybe I'm missing something? > > Making it abstract is not a good idea: I know some rare cases when the > Toolkit class is extended (e.g. for testing purposes), and adding a new > abstract method will break such code at compile time. Yeah agreed. We are doing this massively in Cacio as you can imagine, and for us would be nicer to have a compile time error so we know what to fix. But I see that java.awt.Toolkit is public API and cannot be changed in a non-compatibel way... Cheers, Roman From federicotg at gmail.com Wed Oct 26 12:27:22 2011 From: federicotg at gmail.com (Federico) Date: Wed, 26 Oct 2011 16:27:22 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> Message-ID: Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible getFieldsAsString() implementations, but they are all automatically generated (which is a relief as there was no human being actually writing such code). They all say at the beginning: // This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead ! My guess is in file /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java in line 678 public void writeToString(StructType stp, PrintWriter pw) { starts the code generating bit. 2011/10/26 Oleg Sukhodolsky : > +1 to Artem. > > It is better to fix this too. > > Oleg. > > On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: >> >> On 10/26/2011 7:26 PM, Anthony Petrov wrote: >>> >>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >>>> >>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>>>> >>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >>>>> that in most other places where something is logged, the code usually >>>>> checks whether logging is enabled for a certain level of logging, e.g.: >>>>> >>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>>>> shapeLog.finer( >>>>>> "*** INFO: Setting shape: PEER: " + this >>>>>> + "; WINDOW: " + getWindow() >>>>>> + "; TARGET: " + target >>>>>> + "; SHAPE: " + shape); >>>>>> } >>>>> >>>>> So basically, we could simply wrap the line in question into a similar >>>>> if(){} statement to make sure it gets executed only when the FINEST >>>>> level of logging is enabled. A similar solution may also apply to >>>>> another call to enableLog.finer() in the same method just a few lines >>>>> below. >>>> >>>> Although the fix has been already pushed to the workspace, let me >>>> wonder if, in addition to wrapping the logging calls with the "if ()" >>>> checks, we should have also rewritten isEventDisabled() to use >>>> StringBuilder? >>> >>> I guess you really mean the XEvent.getFieldsAsString() here [1], right? >> >> Yes, exactly. Thanks for this correction. >> >>> Possibly. But with Federico's fix this method now only gets called when >>> logging is enabled, and as such the impact of the issue is limited. >> >> I realize that. My point is that we just hide the problem, or make it less >> visible, or make it appear less frequently - whatever you prefer. However, >> the problematic code that contains char[] allocation is still in the >> workspace, and we know how often people use the current code as a pattern >> for future changes... >> >> Thanks, >> >> Artem >> >>> [1] >>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >>> >>> -- >>> best regards, >>> Anthony >>> >>> >>>> >>>> Thanks, >>>> >>>> Artem >>>> >>>>> Could you make a patch, test it, and post it to this mailing list for >>>>> review please? >>>>> >>>>> -- >>>>> best regards, >>>>> Anthony >>>>> >>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>>>> >>>>>> Hi. >>>>>> I'm running >>>>>> >>>>>> java -version >>>>>> java version "1.7.0_147-icedtea" >>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>>>> (7~b147-2.0~pre6-1ubuntu1) >>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>>>> >>>>>> and profiling a simple Swing application. >>>>>> >>>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>>>>> see 600 MB of char[] being created. I can easily create several >>>>>> terabytes or those if I move the mouse a little longer. Thanks to the >>>>>> incredibly efficient garbage collector the application performance is >>>>>> not visibly affected on my 4GB quad core machine. >>>>>> >>>>>> The problem is an incredibly inefficient method >>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >>>>>> this >>>>>> message. >>>>>> >>>>>> The way it it handling string concatenation forces StringBuilder to >>>>>> grow >>>>>> many times and ends up calling Arrays.copyOf a lot of times. >>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>>>>> the sake of logging here: >>>>>> >>>>>> sun.awt.X11.XComponentPeer >>>>>> >>>>>> protected boolean isEventDisabled(XEvent e) >>>>>> >>>>>> enableLog.finest("Component is {1}, checking for disabled event >>>>>> {0}", e, >>>>>> (isEnabled()?"enabled":"disable")); >>>>>> >>>>>> The worse part is that even if logging is disabled and nothing at >>>>>> all is >>>>>> ever logged, the toString is called anyway and all those char[] are >>>>>> created anyway. >>>>>> >>>>>> Here's a NetBeans profiler memory snapshot. >>>>>> >>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>>>> >>>>>> >>>>>> This does not happen *at all* if I run the same profiling with this >>>>>> openjdk version >>>>>> >>>>>> java -version >>>>>> java version "1.6.0_23" >>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>>>> >>>>>> I hope we can do something to improve this situation. I guess all Swing >>>>>> applications are affected. >>>>>> >>>>>> I look forward for any comments. >>>>>> >>>>>> Here's the "thing"... >>>>>> >>>>>> --------------------------------------------------- >>>>>> >>>>>> String getFieldsAsString() { >>>>>> String ret=""; >>>>>> >>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>>>>> ret += ""+"xany = " + get_xany() +", "; >>>>>> ret += ""+"xkey = " + get_xkey() +", "; >>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>>>> ret += ""+"xmap = " + get_xmap() +", "; >>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>>>>> ret += ""+"xselection = " + get_xselection() +", "; >>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>>>> ret += ""+"xclient = " + get_xclient() +", "; >>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>>>> ret += ""+"xerror = " + get_xerror() +", "; >>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>>>> get_pad(10) >>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>>>> return ret; >>>>>> } >>>>>> >>>>>> >> > From son.two at gmail.com Wed Oct 26 13:14:46 2011 From: son.two at gmail.com (Oleg Sukhodolsky) Date: Thu, 27 Oct 2011 00:14:46 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> Message-ID: Yep, you are right. It is a WrapperGenerator who should be fixed. And after that we need to regenerate all wrappers (if they are not generated during build). Oleg. On Wed, Oct 26, 2011 at 11:27 PM, Federico wrote: > Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible > getFieldsAsString() implementations, but they are all automatically > generated (which is a relief as there was no human being actually > writing such code). > > They all say at the beginning: > > // This file is an automatically generated file, please do not edit > this file, modify the WrapperGenerator.java file instead ! > > My guess is in file > /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java > > in line 678 > public void writeToString(StructType stp, PrintWriter pw) { > > starts the code generating bit. > > > 2011/10/26 Oleg Sukhodolsky : >> +1 to Artem. >> >> It is better to fix this too. >> >> Oleg. >> >> On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: >>> >>> On 10/26/2011 7:26 PM, Anthony Petrov wrote: >>>> >>>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >>>>> >>>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>>>>> >>>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >>>>>> that in most other places where something is logged, the code usually >>>>>> checks whether logging is enabled for a certain level of logging, e.g.: >>>>>> >>>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>>>>> shapeLog.finer( >>>>>>> "*** INFO: Setting shape: PEER: " + this >>>>>>> + "; WINDOW: " + getWindow() >>>>>>> + "; TARGET: " + target >>>>>>> + "; SHAPE: " + shape); >>>>>>> } >>>>>> >>>>>> So basically, we could simply wrap the line in question into a similar >>>>>> if(){} statement to make sure it gets executed only when the FINEST >>>>>> level of logging is enabled. A similar solution may also apply to >>>>>> another call to enableLog.finer() in the same method just a few lines >>>>>> below. >>>>> >>>>> Although the fix has been already pushed to the workspace, let me >>>>> wonder if, in addition to wrapping the logging calls with the "if ()" >>>>> checks, we should have also rewritten isEventDisabled() to use >>>>> StringBuilder? >>>> >>>> I guess you really mean the XEvent.getFieldsAsString() here [1], right? >>> >>> Yes, exactly. Thanks for this correction. >>> >>>> Possibly. But with Federico's fix this method now only gets called when >>>> logging is enabled, and as such the impact of the issue is limited. >>> >>> I realize that. My point is that we just hide the problem, or make it less >>> visible, or make it appear less frequently - whatever you prefer. However, >>> the problematic code that contains char[] allocation is still in the >>> workspace, and we know how often people use the current code as a pattern >>> for future changes... >>> >>> Thanks, >>> >>> Artem >>> >>>> [1] >>>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >>>> >>>> -- >>>> best regards, >>>> Anthony >>>> >>>> >>>>> >>>>> Thanks, >>>>> >>>>> Artem >>>>> >>>>>> Could you make a patch, test it, and post it to this mailing list for >>>>>> review please? >>>>>> >>>>>> -- >>>>>> best regards, >>>>>> Anthony >>>>>> >>>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>>>>> >>>>>>> Hi. >>>>>>> I'm running >>>>>>> >>>>>>> java -version >>>>>>> java version "1.7.0_147-icedtea" >>>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>>>>> (7~b147-2.0~pre6-1ubuntu1) >>>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>>>>> >>>>>>> and profiling a simple Swing application. >>>>>>> >>>>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>>>>>> see 600 MB of char[] being created. I can easily create several >>>>>>> terabytes or those if I move the mouse a little longer. Thanks to the >>>>>>> incredibly efficient garbage collector the application performance is >>>>>>> not visibly affected on my 4GB quad core machine. >>>>>>> >>>>>>> The problem is an incredibly inefficient method >>>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >>>>>>> this >>>>>>> message. >>>>>>> >>>>>>> The way it it handling string concatenation forces StringBuilder to >>>>>>> grow >>>>>>> many times and ends up calling Arrays.copyOf a lot of times. >>>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>>>>>> the sake of logging here: >>>>>>> >>>>>>> sun.awt.X11.XComponentPeer >>>>>>> >>>>>>> protected boolean isEventDisabled(XEvent e) >>>>>>> >>>>>>> enableLog.finest("Component is {1}, checking for disabled event >>>>>>> {0}", e, >>>>>>> (isEnabled()?"enabled":"disable")); >>>>>>> >>>>>>> The worse part is that even if logging is disabled and nothing at >>>>>>> all is >>>>>>> ever logged, the toString is called anyway and all those char[] are >>>>>>> created anyway. >>>>>>> >>>>>>> Here's a NetBeans profiler memory snapshot. >>>>>>> >>>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>>>>> >>>>>>> >>>>>>> This does not happen *at all* if I run the same profiling with this >>>>>>> openjdk version >>>>>>> >>>>>>> java -version >>>>>>> java version "1.6.0_23" >>>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>>>>> >>>>>>> I hope we can do something to improve this situation. I guess all Swing >>>>>>> applications are affected. >>>>>>> >>>>>>> I look forward for any comments. >>>>>>> >>>>>>> Here's the "thing"... >>>>>>> >>>>>>> --------------------------------------------------- >>>>>>> >>>>>>> String getFieldsAsString() { >>>>>>> String ret=""; >>>>>>> >>>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>>>>>> ret += ""+"xany = " + get_xany() +", "; >>>>>>> ret += ""+"xkey = " + get_xkey() +", "; >>>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>>>>> ret += ""+"xmap = " + get_xmap() +", "; >>>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>>>>>> ret += ""+"xselection = " + get_xselection() +", "; >>>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>>>>> ret += ""+"xclient = " + get_xclient() +", "; >>>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>>>>> ret += ""+"xerror = " + get_xerror() +", "; >>>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>>>>> get_pad(10) >>>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>>>>> return ret; >>>>>>> } >>>>>>> >>>>>>> >>> >> > From federicotg at gmail.com Wed Oct 26 15:05:14 2011 From: federicotg at gmail.com (Federico Tello Gentile) Date: Wed, 26 Oct 2011 19:05:14 -0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> Message-ID: <1319666714.3068.7.camel@PhenomX4> Here's a patch to use StringBuilder. It also sets an initial size to reduce char[] copying when appending. I ran the generator locally and checked the generated code. As I don't know if those java files are generated on every build or if they were generated just once with certain input files and committed to the repo, I did not go any further. I hope it is at least a starting point. El jue, 27-10-2011 a las 00:14 +0400, Oleg Sukhodolsky escribi?: > Yep, you are right. It is a WrapperGenerator who should be fixed. > And after that we need to regenerate all wrappers (if they are not > generated during build). > > Oleg. > > On Wed, Oct 26, 2011 at 11:27 PM, Federico wrote: > > Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible > > getFieldsAsString() implementations, but they are all automatically > > generated (which is a relief as there was no human being actually > > writing such code). > > > > They all say at the beginning: > > > > // This file is an automatically generated file, please do not edit > > this file, modify the WrapperGenerator.java file instead ! > > > > My guess is in file > > /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java > > > > in line 678 > > public void writeToString(StructType stp, PrintWriter pw) { > > > > starts the code generating bit. > > > > > > 2011/10/26 Oleg Sukhodolsky : > >> +1 to Artem. > >> > >> It is better to fix this too. > >> > >> Oleg. > >> > >> On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: > >>> > >>> On 10/26/2011 7:26 PM, Anthony Petrov wrote: > >>>> > >>>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: > >>>>> > >>>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: > >>>>>> > >>>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice > >>>>>> that in most other places where something is logged, the code usually > >>>>>> checks whether logging is enabled for a certain level of logging, e.g.: > >>>>>> > >>>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { > >>>>>>> shapeLog.finer( > >>>>>>> "*** INFO: Setting shape: PEER: " + this > >>>>>>> + "; WINDOW: " + getWindow() > >>>>>>> + "; TARGET: " + target > >>>>>>> + "; SHAPE: " + shape); > >>>>>>> } > >>>>>> > >>>>>> So basically, we could simply wrap the line in question into a similar > >>>>>> if(){} statement to make sure it gets executed only when the FINEST > >>>>>> level of logging is enabled. A similar solution may also apply to > >>>>>> another call to enableLog.finer() in the same method just a few lines > >>>>>> below. > >>>>> > >>>>> Although the fix has been already pushed to the workspace, let me > >>>>> wonder if, in addition to wrapping the logging calls with the "if ()" > >>>>> checks, we should have also rewritten isEventDisabled() to use > >>>>> StringBuilder? > >>>> > >>>> I guess you really mean the XEvent.getFieldsAsString() here [1], right? > >>> > >>> Yes, exactly. Thanks for this correction. > >>> > >>>> Possibly. But with Federico's fix this method now only gets called when > >>>> logging is enabled, and as such the impact of the issue is limited. > >>> > >>> I realize that. My point is that we just hide the problem, or make it less > >>> visible, or make it appear less frequently - whatever you prefer. However, > >>> the problematic code that contains char[] allocation is still in the > >>> workspace, and we know how often people use the current code as a pattern > >>> for future changes... > >>> > >>> Thanks, > >>> > >>> Artem > >>> > >>>> [1] > >>>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html > >>>> > >>>> -- > >>>> best regards, > >>>> Anthony > >>>> > >>>> > >>>>> > >>>>> Thanks, > >>>>> > >>>>> Artem > >>>>> > >>>>>> Could you make a patch, test it, and post it to this mailing list for > >>>>>> review please? > >>>>>> > >>>>>> -- > >>>>>> best regards, > >>>>>> Anthony > >>>>>> > >>>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: > >>>>>>> > >>>>>>> Hi. > >>>>>>> I'm running > >>>>>>> > >>>>>>> java -version > >>>>>>> java version "1.7.0_147-icedtea" > >>>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) > >>>>>>> (7~b147-2.0~pre6-1ubuntu1) > >>>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) > >>>>>>> > >>>>>>> and profiling a simple Swing application. > >>>>>>> > >>>>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I > >>>>>>> see 600 MB of char[] being created. I can easily create several > >>>>>>> terabytes or those if I move the mouse a little longer. Thanks to the > >>>>>>> incredibly efficient garbage collector the application performance is > >>>>>>> not visibly affected on my 4GB quad core machine. > >>>>>>> > >>>>>>> The problem is an incredibly inefficient method > >>>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of > >>>>>>> this > >>>>>>> message. > >>>>>>> > >>>>>>> The way it it handling string concatenation forces StringBuilder to > >>>>>>> grow > >>>>>>> many times and ends up calling Arrays.copyOf a lot of times. > >>>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for > >>>>>>> the sake of logging here: > >>>>>>> > >>>>>>> sun.awt.X11.XComponentPeer > >>>>>>> > >>>>>>> protected boolean isEventDisabled(XEvent e) > >>>>>>> > >>>>>>> enableLog.finest("Component is {1}, checking for disabled event > >>>>>>> {0}", e, > >>>>>>> (isEnabled()?"enabled":"disable")); > >>>>>>> > >>>>>>> The worse part is that even if logging is disabled and nothing at > >>>>>>> all is > >>>>>>> ever logged, the toString is called anyway and all those char[] are > >>>>>>> created anyway. > >>>>>>> > >>>>>>> Here's a NetBeans profiler memory snapshot. > >>>>>>> > >>>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 > >>>>>>> > >>>>>>> > >>>>>>> This does not happen *at all* if I run the same profiling with this > >>>>>>> openjdk version > >>>>>>> > >>>>>>> java -version > >>>>>>> java version "1.6.0_23" > >>>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) > >>>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) > >>>>>>> > >>>>>>> I hope we can do something to improve this situation. I guess all Swing > >>>>>>> applications are affected. > >>>>>>> > >>>>>>> I look forward for any comments. > >>>>>>> > >>>>>>> Here's the "thing"... > >>>>>>> > >>>>>>> --------------------------------------------------- > >>>>>>> > >>>>>>> String getFieldsAsString() { > >>>>>>> String ret=""; > >>>>>>> > >>>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; > >>>>>>> ret += ""+"xany = " + get_xany() +", "; > >>>>>>> ret += ""+"xkey = " + get_xkey() +", "; > >>>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; > >>>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; > >>>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; > >>>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; > >>>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; > >>>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; > >>>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; > >>>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; > >>>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; > >>>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; > >>>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; > >>>>>>> ret += ""+"xmap = " + get_xmap() +", "; > >>>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; > >>>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; > >>>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; > >>>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; > >>>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; > >>>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; > >>>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; > >>>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; > >>>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; > >>>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; > >>>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; > >>>>>>> ret += ""+"xselection = " + get_xselection() +", "; > >>>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; > >>>>>>> ret += ""+"xclient = " + get_xclient() +", "; > >>>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; > >>>>>>> ret += ""+"xerror = " + get_xerror() +", "; > >>>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; > >>>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + > >>>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " > >>>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + > >>>>>>> get_pad(10) > >>>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + > >>>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) > >>>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + > >>>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; > >>>>>>> return ret; > >>>>>>> } > >>>>>>> > >>>>>>> > >>> > >> > > -- Mi clave p?blica http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x157673683A51700A -------------- next part -------------- A non-text attachment was scrubbed... Name: WrapperGenerator.java.patch Type: text/x-patch Size: 3083 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20111026/995e31a5/WrapperGenerator.java.patch From son.two at gmail.com Wed Oct 26 21:03:26 2011 From: son.two at gmail.com (Oleg Sukhodolsky) Date: Thu, 27 Oct 2011 08:03:26 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <1319666714.3068.7.camel@PhenomX4> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> <1319666714.3068.7.camel@PhenomX4> Message-ID: If you do not see these classes in the repo then they are generated in build time. Unfortunately I do not have a repo right now so I can not check this :( Oleg. On Thu, Oct 27, 2011 at 2:05 AM, Federico Tello Gentile wrote: > Here's a patch to use StringBuilder. It also sets an initial size to > reduce char[] copying when appending. > > I ran the generator locally and checked the generated code. > > As I don't know if those java files are generated on every build or if > they were generated just once with certain input files and committed to > the repo, I did not go any further. > > I hope it is at least a starting point. > > El jue, 27-10-2011 a las 00:14 +0400, Oleg Sukhodolsky escribi?: >> Yep, you are right. It is a WrapperGenerator who should be fixed. >> And after that we need to regenerate all wrappers (if they are not >> generated during build). >> >> Oleg. >> >> On Wed, Oct 26, 2011 at 11:27 PM, Federico wrote: >> > Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible >> > getFieldsAsString() implementations, but they are all automatically >> > generated (which is a relief as there was no human being actually >> > writing such code). >> > >> > They all say at the beginning: >> > >> > // This file is an automatically generated file, please do not edit >> > this file, modify the WrapperGenerator.java file instead ! >> > >> > My guess is in file >> > /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java >> > >> > in line 678 >> > public void writeToString(StructType stp, PrintWriter pw) { >> > >> > starts the code generating bit. >> > >> > >> > 2011/10/26 Oleg Sukhodolsky : >> >> +1 to Artem. >> >> >> >> It is better to fix this too. >> >> >> >> Oleg. >> >> >> >> On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: >> >>> >> >>> On 10/26/2011 7:26 PM, Anthony Petrov wrote: >> >>>> >> >>>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >> >>>>> >> >>>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >> >>>>>> >> >>>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >> >>>>>> that in most other places where something is logged, the code usually >> >>>>>> checks whether logging is enabled for a certain level of logging, e.g.: >> >>>>>> >> >>>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >> >>>>>>> shapeLog.finer( >> >>>>>>> "*** INFO: Setting shape: PEER: " + this >> >>>>>>> + "; WINDOW: " + getWindow() >> >>>>>>> + "; TARGET: " + target >> >>>>>>> + "; SHAPE: " + shape); >> >>>>>>> } >> >>>>>> >> >>>>>> So basically, we could simply wrap the line in question into a similar >> >>>>>> if(){} statement to make sure it gets executed only when the FINEST >> >>>>>> level of logging is enabled. A similar solution may also apply to >> >>>>>> another call to enableLog.finer() in the same method just a few lines >> >>>>>> below. >> >>>>> >> >>>>> Although the fix has been already pushed to the workspace, let me >> >>>>> wonder if, in addition to wrapping the logging calls with the "if ()" >> >>>>> checks, we should have also rewritten isEventDisabled() to use >> >>>>> StringBuilder? >> >>>> >> >>>> I guess you really mean the XEvent.getFieldsAsString() here [1], right? >> >>> >> >>> Yes, exactly. Thanks for this correction. >> >>> >> >>>> Possibly. But with Federico's fix this method now only gets called when >> >>>> logging is enabled, and as such the impact of the issue is limited. >> >>> >> >>> I realize that. My point is that we just hide the problem, or make it less >> >>> visible, or make it appear less frequently - whatever you prefer. However, >> >>> the problematic code that contains char[] allocation is still in the >> >>> workspace, and we know how often people use the current code as a pattern >> >>> for future changes... >> >>> >> >>> Thanks, >> >>> >> >>> Artem >> >>> >> >>>> [1] >> >>>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >> >>>> >> >>>> -- >> >>>> best regards, >> >>>> Anthony >> >>>> >> >>>> >> >>>>> >> >>>>> Thanks, >> >>>>> >> >>>>> Artem >> >>>>> >> >>>>>> Could you make a patch, test it, and post it to this mailing list for >> >>>>>> review please? >> >>>>>> >> >>>>>> -- >> >>>>>> best regards, >> >>>>>> Anthony >> >>>>>> >> >>>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >> >>>>>>> >> >>>>>>> Hi. >> >>>>>>> I'm running >> >>>>>>> >> >>>>>>> java -version >> >>>>>>> java version "1.7.0_147-icedtea" >> >>>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >> >>>>>>> (7~b147-2.0~pre6-1ubuntu1) >> >>>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >> >>>>>>> >> >>>>>>> and profiling a simple Swing application. >> >>>>>>> >> >>>>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >> >>>>>>> see 600 MB of char[] being created. I can easily create several >> >>>>>>> terabytes or those if I move the mouse a little longer. Thanks to the >> >>>>>>> incredibly efficient garbage collector the application performance is >> >>>>>>> not visibly affected on my 4GB quad core machine. >> >>>>>>> >> >>>>>>> The problem is an incredibly inefficient method >> >>>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >> >>>>>>> this >> >>>>>>> message. >> >>>>>>> >> >>>>>>> The way it it handling string concatenation forces StringBuilder to >> >>>>>>> grow >> >>>>>>> many times and ends up calling Arrays.copyOf a lot of times. >> >>>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >> >>>>>>> the sake of logging here: >> >>>>>>> >> >>>>>>> sun.awt.X11.XComponentPeer >> >>>>>>> >> >>>>>>> protected boolean isEventDisabled(XEvent e) >> >>>>>>> >> >>>>>>> enableLog.finest("Component is {1}, checking for disabled event >> >>>>>>> {0}", e, >> >>>>>>> (isEnabled()?"enabled":"disable")); >> >>>>>>> >> >>>>>>> The worse part is that even if logging is disabled and nothing at >> >>>>>>> all is >> >>>>>>> ever logged, the toString is called anyway and all those char[] are >> >>>>>>> created anyway. >> >>>>>>> >> >>>>>>> Here's a NetBeans profiler memory snapshot. >> >>>>>>> >> >>>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >> >>>>>>> >> >>>>>>> >> >>>>>>> This does not happen *at all* if I run the same profiling with this >> >>>>>>> openjdk version >> >>>>>>> >> >>>>>>> java -version >> >>>>>>> java version "1.6.0_23" >> >>>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >> >>>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >> >>>>>>> >> >>>>>>> I hope we can do something to improve this situation. I guess all Swing >> >>>>>>> applications are affected. >> >>>>>>> >> >>>>>>> I look forward for any comments. >> >>>>>>> >> >>>>>>> Here's the "thing"... >> >>>>>>> >> >>>>>>> --------------------------------------------------- >> >>>>>>> >> >>>>>>> String getFieldsAsString() { >> >>>>>>> String ret=""; >> >>>>>>> >> >>>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >> >>>>>>> ret += ""+"xany = " + get_xany() +", "; >> >>>>>>> ret += ""+"xkey = " + get_xkey() +", "; >> >>>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >> >>>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >> >>>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >> >>>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >> >>>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >> >>>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >> >>>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >> >>>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >> >>>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >> >>>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >> >>>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >> >>>>>>> ret += ""+"xmap = " + get_xmap() +", "; >> >>>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >> >>>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >> >>>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >> >>>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >> >>>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >> >>>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >> >>>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >> >>>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >> >>>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >> >>>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >> >>>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >> >>>>>>> ret += ""+"xselection = " + get_xselection() +", "; >> >>>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >> >>>>>>> ret += ""+"xclient = " + get_xclient() +", "; >> >>>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >> >>>>>>> ret += ""+"xerror = " + get_xerror() +", "; >> >>>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >> >>>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >> >>>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >> >>>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >> >>>>>>> get_pad(10) >> >>>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >> >>>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >> >>>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >> >>>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >> >>>>>>> return ret; >> >>>>>>> } >> >>>>>>> >> >>>>>>> >> >>> >> >> >> > > > -- > Mi clave p?blica > http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x157673683A51700A > From lana.steuck at oracle.com Wed Oct 26 23:50:15 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:50:15 +0000 Subject: hg: jdk8/awt: 10 new changesets Message-ID: <20111027065016.06C7F4715C@hg.openjdk.java.net> Changeset: 0db7ae9f2b10 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/0db7ae9f2b10 Added tag jdk8-b06 for changeset 28cf2aec4dd7 ! .hgtags Changeset: cf76aa4189e4 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/cf76aa4189e4 Added tag jdk8-b07 for changeset 0db7ae9f2b10 ! .hgtags Changeset: b1d357ebf0cb Author: weijun Date: 2011-09-08 09:06 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/rev/b1d357ebf0cb 7087428: move client tests out of jdk_misc Reviewed-by: ohair, alanb ! make/jprt.properties Changeset: 123873564c23 Author: lana Date: 2011-09-13 08:37 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/123873564c23 Merge Changeset: 39edfd9d8ff0 Author: lana Date: 2011-09-23 23:25 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/39edfd9d8ff0 Merge Changeset: 2f1af0e3e8f7 Author: lana Date: 2011-09-26 14:31 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/2f1af0e3e8f7 Merge Changeset: fb1bc13260d7 Author: lana Date: 2011-10-03 18:22 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/fb1bc13260d7 Merge Changeset: 8adb70647b5a Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/8adb70647b5a Added tag jdk8-b08 for changeset fb1bc13260d7 ! .hgtags Changeset: a6c4c248e8fa Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/a6c4c248e8fa Added tag jdk8-b09 for changeset 8adb70647b5a ! .hgtags Changeset: 1defbc57940a Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/rev/1defbc57940a Added tag jdk8-b10 for changeset a6c4c248e8fa ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:50:29 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:50:29 +0000 Subject: hg: jdk8/awt/jaxp: 5 new changesets Message-ID: <20111027065030.1309C4715D@hg.openjdk.java.net> Changeset: c114306576dc Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxp/rev/c114306576dc Added tag jdk8-b06 for changeset d7b8192e7277 ! .hgtags Changeset: de4794dd69c4 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxp/rev/de4794dd69c4 Added tag jdk8-b07 for changeset c114306576dc ! .hgtags Changeset: 93554324c014 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxp/rev/93554324c014 Added tag jdk8-b08 for changeset de4794dd69c4 ! .hgtags Changeset: d21a4d5141c0 Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxp/rev/d21a4d5141c0 Added tag jdk8-b09 for changeset 93554324c014 ! .hgtags Changeset: d1b7a4f6dd20 Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxp/rev/d1b7a4f6dd20 Added tag jdk8-b10 for changeset d21a4d5141c0 ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:50:34 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:50:34 +0000 Subject: hg: jdk8/awt/jaxws: 5 new changesets Message-ID: <20111027065035.4B8E14715E@hg.openjdk.java.net> Changeset: 134b0debf7b0 Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxws/rev/134b0debf7b0 Added tag jdk8-b06 for changeset acffff22a946 ! .hgtags Changeset: 1c9d4f59acf8 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxws/rev/1c9d4f59acf8 Added tag jdk8-b07 for changeset 134b0debf7b0 ! .hgtags Changeset: 70172e57cf29 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxws/rev/70172e57cf29 Added tag jdk8-b08 for changeset 1c9d4f59acf8 ! .hgtags Changeset: 8e7fdc8e3c75 Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxws/rev/8e7fdc8e3c75 Added tag jdk8-b09 for changeset 70172e57cf29 ! .hgtags Changeset: a12ab897a249 Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jaxws/rev/a12ab897a249 Added tag jdk8-b10 for changeset 8e7fdc8e3c75 ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:50:24 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:50:24 +0000 Subject: hg: jdk8/awt/corba: 5 new changesets Message-ID: <20111027065036.663424715F@hg.openjdk.java.net> Changeset: 3d61f0856f34 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/corba/rev/3d61f0856f34 Added tag jdk8-b06 for changeset 45c43dde7ba7 ! .hgtags Changeset: 0d52b1c87aa8 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/corba/rev/0d52b1c87aa8 Added tag jdk8-b07 for changeset 3d61f0856f34 ! .hgtags Changeset: a891732c1a83 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/corba/rev/a891732c1a83 Added tag jdk8-b08 for changeset 0d52b1c87aa8 ! .hgtags Changeset: cda87f7fefce Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/corba/rev/cda87f7fefce Added tag jdk8-b09 for changeset a891732c1a83 ! .hgtags Changeset: 0199e4fef5cc Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/corba/rev/0199e4fef5cc Added tag jdk8-b10 for changeset cda87f7fefce ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:50:48 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:50:48 +0000 Subject: hg: jdk8/awt/langtools: 24 new changesets Message-ID: <20111027065143.9A95047160@hg.openjdk.java.net> Changeset: 116980ecec5c Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/116980ecec5c Added tag jdk8-b06 for changeset d2422276f9da ! .hgtags Changeset: 9268bd271c6f Author: katleman Date: 2011-09-29 18:54 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/9268bd271c6f Added tag jdk8-b07 for changeset 116980ecec5c ! .hgtags Changeset: ed338593b0b6 Author: mcimadamore Date: 2011-09-13 14:14 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/ed338593b0b6 7086595: Error message bug: name of initializer is 'null' Summary: Implementation of MethodSymbol.location() should take into account static/instance initializers Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Kinds.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java + test/tools/javac/7086595/T7086595.java + test/tools/javac/7086595/T7086595.out ! test/tools/javac/Diagnostics/6860795/T6860795.out ! test/tools/javac/LocalClasses_2.out ! test/tools/javac/NestedInnerClassNames.out ! test/tools/javac/TryWithResources/BadTwr.out ! test/tools/javac/TryWithResources/DuplicateResourceDecl.out + test/tools/javac/diags/examples/AlreadyDefinedClinit.java + test/tools/javac/diags/examples/KindnameInstanceInit.java + test/tools/javac/diags/examples/KindnameStaticInit.java ! test/tools/javac/generics/6910550/T6910550d.out Changeset: f595d8bc0599 Author: mcimadamore Date: 2011-09-13 14:15 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/f595d8bc0599 7003595: IncompatibleClassChangeError with unreferenced local class with subclass Summary: Compiler omits unreferenced local inner classes from the InnerClasses attribute Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java + test/tools/javac/7003595/T7003595.java + test/tools/javac/7003595/T7003595b.java Changeset: 3a2200681d69 Author: mcimadamore Date: 2011-09-13 14:15 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/3a2200681d69 7086601: Error message bug: cause for method mismatch is 'null' Summary: Inference error during lub() does not set 'cause' for method resolution diagnostic Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/diags/examples/IncompatibleUpperBounds.java + test/tools/javac/generics/inference/7086601/T7086601a.java + test/tools/javac/generics/inference/7086601/T7086601a.out + test/tools/javac/generics/inference/7086601/T7086601b.java Changeset: ca2e2b85f437 Author: mchung Date: 2011-09-13 16:37 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/ca2e2b85f437 7090297: Remove com.sun.tools.javac.Launcher from tools.jar Reviewed-by: jjg - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: 0f3da6af9799 Author: jjg Date: 2011-09-14 12:07 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/0f3da6af9799 7080267: Call to toString() from an ExpressionStatementTree doesn't take in consideration the ";" at the end Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/tree/JCTree.java + test/tools/javac/tree/TestToString.java Changeset: 1807fc3fd33c Author: jjg Date: 2011-09-14 12:14 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/1807fc3fd33c 7090249: IllegalStateException from Trees.getScope when called from JSR 199 Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/api/JavacTrees.java + test/tools/javac/api/TestGetScope.java Changeset: a6e2c1840ea1 Author: jjg Date: 2011-09-14 15:49 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/a6e2c1840ea1 7090700: fix for 7080267 breaks two tests Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/tree/JCTree.java Changeset: 826ae6a2f27d Author: jjg Date: 2011-09-14 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/826ae6a2f27d 7068437: Regression: Filer.getResource(SOURCE_OUTPUT, ...) no longer works in JDK 7 w/o -s Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/processing/JavacFiler.java + test/tools/javac/file/T7068437.java Changeset: c0835c8489b0 Author: mcimadamore Date: 2011-09-16 14:16 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/c0835c8489b0 7086586: Inference producing null type argument Summary: Inference should fail in 15.12.2.7 when inference variables with 'nulltype' upper bounds are found Reviewed-by: dlsmith ! src/share/classes/com/sun/tools/javac/code/Types.java ! test/tools/javac/Diagnostics/6862608/T6862608a.out ! test/tools/javac/generics/inference/6638712/T6638712a.out + test/tools/javac/generics/inference/7086586/T7086586.java + test/tools/javac/generics/inference/7086586/T7086586.out + test/tools/javac/generics/inference/7086586/T7086586b.java Changeset: dea82aa3ca4f Author: jjg Date: 2011-09-16 16:18 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/dea82aa3ca4f 7091528: javadoc attempts to parse .class files Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/JavadocTool.java + test/tools/javadoc/parser/7091528/T7091528.java + test/tools/javadoc/parser/7091528/p/C1.java + test/tools/javadoc/parser/7091528/p/q/C2.java Changeset: ac964af3b5e7 Author: jjg Date: 2011-09-20 12:08 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/ac964af3b5e7 7030473: Remove dead field JCCompilationUnit.flags Reviewed-by: dlsmith ! src/share/classes/com/sun/tools/javac/tree/JCTree.java Changeset: b0d5f00e69f7 Author: jjg Date: 2011-09-21 21:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/b0d5f00e69f7 7092965: javac should not close processorClassLoader before end of compilation Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/tools/javac/diags/examples.not-yet.txt + test/tools/javac/processing/loader/testClose/TestClose.java + test/tools/javac/processing/loader/testClose/TestClose2.java Changeset: 497571d34112 Author: jjg Date: 2011-09-22 09:24 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/497571d34112 7075721: javac should have public enum for exit codes Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/Main.java ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! test/tools/javac/diags/ArgTypeCompilerFactory.java ! test/tools/javac/diags/Example.java ! test/tools/javac/lib/CompileFail.java ! test/tools/javac/util/context/T7021650.java Changeset: 0c6f79fc8441 Author: lana Date: 2011-09-23 23:30 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/0c6f79fc8441 Merge Changeset: 28573d605b01 Author: lana Date: 2011-09-26 14:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/28573d605b01 Merge - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: e8acc2d6c32f Author: lana Date: 2011-10-03 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/e8acc2d6c32f Merge - src/share/classes/com/sun/tools/javac/Launcher.java Changeset: b7a7e47c8d3d Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/b7a7e47c8d3d Added tag jdk8-b08 for changeset e8acc2d6c32f ! .hgtags Changeset: 510d09ddc861 Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/510d09ddc861 Added tag jdk8-b09 for changeset b7a7e47c8d3d ! .hgtags Changeset: 47147081d5b4 Author: mcimadamore Date: 2011-10-06 18:39 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/47147081d5b4 7090499: missing rawtypes warnings in anonymous inner class Summary: javac does not detect raw types inside anonymous inner classes Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/warnings/7090499/T7090499.java + test/tools/javac/warnings/7090499/T7090499.out Changeset: 5010ffc61eda Author: lana Date: 2011-10-12 12:26 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/5010ffc61eda Merge Changeset: f6c783e18bdf Author: lana Date: 2011-10-17 19:07 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/f6c783e18bdf Merge Changeset: 4bf01f1c4e34 Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/langtools/rev/4bf01f1c4e34 Added tag jdk8-b10 for changeset f6c783e18bdf ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:51:25 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:51:25 +0000 Subject: hg: jdk8/awt/hotspot: 136 new changesets Message-ID: <20111027065552.6359F47161@hg.openjdk.java.net> Changeset: 3f0cf875af83 Author: katleman Date: 2011-09-22 16:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3f0cf875af83 Added tag jdk8-b06 for changeset 0db80d8e77fc ! .hgtags Changeset: 0663e7617095 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/0663e7617095 Added tag jdk8-b07 for changeset 3f0cf875af83 ! .hgtags Changeset: 5755e84e970f Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5755e84e970f Added tag hs22-b01 for changeset 0cc8a70952c3 ! .hgtags Changeset: 40c5e268d399 Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/40c5e268d399 Added tag hs22-b02 for changeset 7c29742c41b4 ! .hgtags Changeset: 52220701f19f Author: jcoomes Date: 2011-09-02 15:47 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/52220701f19f Added tag hs22-b03 for changeset 3a2fb61165df ! .hgtags Changeset: ce9bde819dcb Author: jcoomes Date: 2011-09-02 03:49 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ce9bde819dcb 7086589: bump the hs22 build number to 04 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 5c123cbeebbe Author: jcoomes Date: 2011-09-02 15:52 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5c123cbeebbe Added tag hs22-b04 for changeset ce9bde819dcb ! .hgtags Changeset: 3cd0157e1d4d Author: iveresov Date: 2011-08-25 02:57 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3cd0157e1d4d 7082969: NUMA interleaving Summary: Support interleaving on NUMA systems for collectors that don't have NUMA-awareness. Reviewed-by: iveresov, ysr Contributed-by: Tom Deneau ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os/windows/vm/os_windows.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: eeae91c9baba Author: johnc Date: 2011-08-29 10:13 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/eeae91c9baba 7080389: G1: refactor marking code in evacuation pause copy closures Summary: Refactor code marking code in the evacuation pause copy closures so that an evacuated object is only marked by the thread that successfully copies it. Reviewed-by: stefank, brutisso, tonyp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Changeset: 9447b2fb6fcf Author: iveresov Date: 2011-08-29 17:42 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/9447b2fb6fcf 7082645: Hotspot doesn't compile on old linuxes after 7060836 Summary: Move syscall ids definitions into os_linux.cpp Reviewed-by: johnc ! src/os/linux/vm/os_linux.cpp Changeset: 4fe626cbf0bf Author: johnc Date: 2011-08-31 10:16 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4fe626cbf0bf 7066841: remove MacroAssembler::br_on_reg_cond() on sparc Summary: Remove the macro assembler routine br_on_reg_cond() and replace the remaining calls to that routine with an equivalent. Reviewed-by: kvn, iveresov ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: ae1b1788f63f Author: ysr Date: 2011-08-31 23:55 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ae1b1788f63f Merge Changeset: 4668545121b8 Author: jcoomes Date: 2011-09-02 21:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4668545121b8 Merge Changeset: ac8738449b6f Author: never Date: 2011-08-25 20:29 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ac8738449b6f 7082949: JSR 292: missing ResourceMark in methodOopDesc::make_invoke_method Reviewed-by: kvn, twisti ! src/share/vm/oops/methodOop.cpp + test/compiler/7082949/Test7082949.java Changeset: baf763f388e6 Author: kvn Date: 2011-08-26 08:52 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/baf763f388e6 7059037: Use BIS for zeroing on T4 Summary: Use BIS for zeroing new allocated big (2Kb and more) objects and arrays. Reviewed-by: never, twisti, ysr ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/copy_sparc.hpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/oops/cpCacheKlass.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/stubRoutines.cpp ! src/share/vm/runtime/stubRoutines.hpp Changeset: 8805f8c1e23e Author: iveresov Date: 2011-08-27 00:23 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8805f8c1e23e 6591247: C2 cleans up the merge point too early during SplitIf Summary: Remove region self reference last Reviewed-by: kvn, never ! src/share/vm/opto/split_if.cpp Changeset: b27c72d69fd1 Author: twisti Date: 2011-08-29 05:07 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/b27c72d69fd1 7083184: JSR 292: don't store context class argument with call site dependencies Reviewed-by: jrose, never ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/code/dependencies.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/opto/callGenerator.cpp Changeset: 19241ae0d839 Author: never Date: 2011-08-30 00:54 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/19241ae0d839 7082263: Reflection::resolve_field/field_get/field_set are broken Reviewed-by: kvn, dholmes, stefank, coleenp ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/solaris/makefiles/debug.make ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/jvmg.make - make/solaris/makefiles/mapfile-vers-nonproduct ! make/solaris/makefiles/optimized.make ! make/solaris/makefiles/product.make ! src/share/vm/precompiled.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/reflection.hpp - src/share/vm/runtime/reflectionCompat.hpp Changeset: b346f13112d8 Author: iveresov Date: 2011-08-30 19:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/b346f13112d8 7085279: C1 overflows code buffer with VerifyOops and CompressedOops Summary: Increase the limit of code emitted per LIR instruction, increase the max size of the nmethod generated by C1 Reviewed-by: never, kvn, johnc ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_globals.hpp Changeset: de847cac9235 Author: twisti Date: 2011-08-31 01:40 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/de847cac9235 7078382: JSR 292: don't count method handle adapters against inlining budgets Reviewed-by: kvn, never ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/opto/bytecodeInfo.cpp Changeset: a64d352d1118 Author: kvn Date: 2011-08-31 09:48 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/a64d352d1118 7085137: -XX:+VerifyOops is broken Summary: Replace set() with patchable_set() to generate 8 instructions always. Reviewed-by: iveresov, never, roland ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/sparc.ad Changeset: c124e2e7463e Author: never Date: 2011-08-31 16:46 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c124e2e7463e 7083786: dead various dead chunks of code Reviewed-by: iveresov, kvn ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/frame_sparc.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.hpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp ! src/share/vm/ci/ciConstant.hpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciField.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/oops/constMethodKlass.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/prims/forte.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: a32de5085326 Author: twisti Date: 2011-09-01 01:31 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/a32de5085326 7079673: JSR 292: C1 should inline bytecoded method handle adapters Reviewed-by: never ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/parse.hpp Changeset: aa67216400d3 Author: twisti Date: 2011-09-02 00:36 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/aa67216400d3 7085404: JSR 292: VolatileCallSites should have push notification too Reviewed-by: never, kvn ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciField.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/parse3.cpp ! src/share/vm/prims/unsafe.cpp Changeset: 11a4af030e4b Author: twisti Date: 2011-09-02 04:28 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/11a4af030e4b 7071709: JSR 292: switchpoint invalidation should be pushed not pulled Reviewed-by: never ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/parse3.cpp Changeset: 2f9b79ddb05c Author: kvn Date: 2011-09-02 12:13 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2f9b79ddb05c 7039731: arraycopy could use prefetch on SPARC Summary: Use BIS and prefetch in arraycopy stubs for Sparc (BIS for T4 only). Reviewed-by: never, iveresov ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/share/vm/runtime/globals.hpp Changeset: 2090c623107e Author: never Date: 2011-09-02 22:00 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2090c623107e 7016881: JSR 292: JDI: sun.jvm.hotspot.utilities.AssertionFailure: index out of bounds Reviewed-by: kvn, twisti ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java Changeset: c26de9aef2ed Author: never Date: 2011-09-02 20:58 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c26de9aef2ed 7071307: MethodHandle bimorphic inlining should consider the frequency Reviewed-by: twisti, roland, kvn, iveresov ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/share/vm/ci/ciCallProfile.hpp ! src/share/vm/ci/ciMethodHandle.cpp ! src/share/vm/ci/ciMethodHandle.hpp ! src/share/vm/ci/ciObject.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/methodDataOop.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/idealGraphPrinter.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/prims/methodHandleWalk.hpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp Changeset: 7ffacbb338d4 Author: never Date: 2011-09-03 09:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/7ffacbb338d4 Merge Changeset: 7b5c767f229c Author: kvn Date: 2011-09-03 14:03 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/7b5c767f229c 7086560: 7085404 changes broke VM with -XX:-EnableInvokeDynamic Summary: Add check that ciEnv::_CallSite_klass is initialized. Reviewed-by: jrose ! src/share/vm/ci/ciField.hpp Changeset: 7588156f5cf9 Author: never Date: 2011-09-05 17:09 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/7588156f5cf9 7051798: SA-JDI: NPE in Frame.addressOfStackSlot(Frame.java:244) Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/HSDB.java ! agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java + agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java ! agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java + agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java + agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java ! src/cpu/x86/vm/methodHandles_x86.hpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_LinearScan.hpp ! src/share/vm/code/pcDesc.cpp ! src/share/vm/code/pcDesc.hpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: c2d3caa64b3e Author: roland Date: 2011-09-07 09:35 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c2d3caa64b3e 7086394: c2/arm: enable UseFPUForSpilling Summary: ARM has instructions to move data directly between the fpu and integer registers. Reviewed-by: kvn, never ! src/share/vm/opto/matcher.cpp Changeset: d968f546734e Author: iveresov Date: 2011-09-07 11:52 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/d968f546734e Merge - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/runtime/globals.hpp - src/share/vm/runtime/reflectionCompat.hpp Changeset: 2fecca53a2c6 Author: roland Date: 2011-09-07 14:15 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2fecca53a2c6 7085012: ARM: com/sun/jdi/PopSynchronousTest.java still fails Summary: InterpreterRuntime::popframe_move_outgoing_args() is required for the ARM interpreter. Reviewed-by: kvn, twisti ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp Changeset: 5596e125fe4f Author: rottenha Date: 2011-09-08 06:36 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5596e125fe4f Merge ! src/share/vm/interpreter/interpreterRuntime.cpp Changeset: 27702f012017 Author: iveresov Date: 2011-09-06 21:03 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/27702f012017 7087583: Hotspot fails to allocate heap with mmap(MAP_HUGETLB) Summary: Try using small pages when transparent huge pages allocation fails Reviewed-by: ysr ! src/os/linux/vm/os_linux.cpp Changeset: 20213c8a3c40 Author: tonyp Date: 2011-09-07 12:21 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/20213c8a3c40 7050392: G1: Introduce flag to generate a log of the G1 ergonomic decisions Summary: It introduces ergonomic decision logging in G1 for the following heuristics: heap sizing, collection set construction, concurrent cycle initiation, and partially-young GC start/end. The code has a bit of refactoring in a few places to make the decision logging possible. It also replaces alternative ad-hoc logging that we have under different parameters and switches (G1_DEBUG, G1PolicyVerbose). Reviewed-by: johnc, ysr ! src/share/vm/gc_implementation/g1/collectionSetChooser.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp + src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Changeset: c2bf0120ee5d Author: stefank Date: 2011-09-01 16:18 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c2bf0120ee5d 7085906: Replace the permgen allocated sentinelRef with a self-looped end Summary: Remove the sentinelRef and let the last Reference in a discovered chain point back to itself. Reviewed-by: ysr, jmasa ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/memory/sharedHeap.cpp Changeset: 05550041d664 Author: ysr Date: 2011-09-07 15:00 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/05550041d664 Merge ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: eca1193ca245 Author: ysr Date: 2011-09-07 13:55 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/eca1193ca245 4965777: GC changes to support use of discovered field for pending references Summary: If and when the reference handler thread is able to use the discovered field to link reference objects in its pending list, so will GC. In that case, GC will scan through this field once a reference object has been placed on the pending list, but not scan that field before that stage, as the field is used by the concurrent GC thread to link discovered objects. When ReferenceHandleR thread does not use the discovered field for the purpose of linking the elements in the pending list, as would be the case in older JDKs, the JVM will fall back to the old behaviour of using the next field for that purpose. Reviewed-by: jcoomes, mchung, stefank ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp Changeset: a6128a8ed624 Author: iveresov Date: 2011-09-07 18:58 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/a6128a8ed624 7086226: UseNUMA fails on old versions of windows Summary: Return correct answers from os::numa_*() for UMA machines or if NUMA API is not supported Reviewed-by: johnc ! src/os/windows/vm/os_windows.cpp Changeset: 4f41766176cf Author: tonyp Date: 2011-09-08 05:16 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4f41766176cf 7084509: G1: fix inconsistencies and mistakes in the young list target length calculations Summary: Fixed inconsistencies and mistakes in the young list target length calculations so that a) the calculated target length is optimal (before, it was not), b) other parameters like max survivor size and max gc locker eden expansion are always consistent with the calculated target length (before, they were not always), and c) the resulting target length was always bound by desired min and max values (before, it was not). Reviewed-by: brutisso, johnc ! src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: af2ab04e0038 Author: brutisso Date: 2011-09-08 16:29 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/af2ab04e0038 6929868: G1: introduce min / max young gen size bounds Summary: Make G1 handle young gen size command line flags more consistently Reviewed-by: tonyp, jwilhelm ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Changeset: 3bddbf0f57d6 Author: tonyp Date: 2011-09-09 05:20 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3bddbf0f57d6 7087717: G1: make the G1PrintRegionLivenessInfo parameter diagnostic Reviewed-by: brutisso, ysr ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: e984655be425 Author: stefank Date: 2011-09-09 14:44 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/e984655be425 Merge ! src/share/vm/prims/jvm.h Changeset: 79f9a3ed607a Author: jcoomes Date: 2011-09-09 16:17 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/79f9a3ed607a Merge ! .hgtags - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 513a84dd0f8b Author: jcoomes Date: 2011-09-09 16:24 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/513a84dd0f8b 7088991: Bump ths hs22 build number to 05 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 140317da459a Author: jcoomes Date: 2011-09-09 16:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/140317da459a Added tag hs22-b05 for changeset 513a84dd0f8b ! .hgtags Changeset: f1b4e0e0bdad Author: tonyp Date: 2011-09-13 12:40 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f1b4e0e0bdad 7089625: G1: policy for how many old regions to add to the CSet (when young gen is fixed) is broken Summary: When refactoring the code for a previous fix, a condition was not correctly negated which prevents the G1 policy from adding the correct number of old regions to the CSet when the young gen size is fixed. The changeset also fixes a small syntactical issue in g1ErgoVerbose.hpp which is causing compiler warnings. Reviewed-by: brutisso, ysr ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp Changeset: 0a63380c8ac8 Author: iveresov Date: 2011-09-13 16:58 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/0a63380c8ac8 7090069: Java launcher hangs in infinite loop on windows when UseNUMA[Interleaving] is specified Summary: Fix _numa_used_node_list array size specification Reviewed-by: kvn, johnc, jmasa, ysr ! src/os/windows/vm/os_windows.cpp Changeset: f94227b6117b Author: kvn Date: 2011-09-13 20:28 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f94227b6117b 7090259: Fix hotspot sources to build with old compilers Summary: Fixed warnings which prevent building VM with old compilers. Reviewed-by: never ! make/solaris/makefiles/sparcWorks.make ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/opto/block.cpp Changeset: da6a29fb0da5 Author: kvn Date: 2011-09-07 12:58 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/da6a29fb0da5 7054211: No loop unrolling done in jdk7b144 for a test update() while loop Summary: restore unrolling code for CaffeineMark. Reviewed-by: never ! src/share/vm/opto/loopTransform.cpp Changeset: 5432047c7db7 Author: bdelsart Date: 2011-09-08 10:12 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5432047c7db7 7087445: Improve platform independence of JSR292 shared code Summary: changes necessary for some JSR292 ports Reviewed-by: jrose, dholmes ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/x86/vm/frame_x86.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/zero/vm/frame_zero.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/frame.hpp Changeset: b0efc7ee3b31 Author: twisti Date: 2011-09-08 05:11 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/b0efc7ee3b31 7085860: JSR 292: implement CallSite.setTargetNormal and setTargetVolatile as native methods Reviewed-by: jrose, never ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/oops/klassOop.hpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/prims/methodHandles.cpp Changeset: fdcb1e828d53 Author: kvn Date: 2011-09-08 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/fdcb1e828d53 7087947: Add regression test for 7068051 Summary: Add regression test. Reviewed-by: never + test/compiler/7068051/Test7068051.java + test/compiler/7068051/Test7068051.sh Changeset: 8f47d8870d9a Author: roland Date: 2011-09-08 09:35 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8f47d8870d9a 7087453: PhaseChaitin::yank_if_dead() should handle MachTemp inputs Summary: PhaseChaitin::yank_if_dead() should be able to handle MachTemp inputs as a special case and yank them. Reviewed-by: never, kvn ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/postaloc.cpp Changeset: 5257f8e66b40 Author: iveresov Date: 2011-09-09 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5257f8e66b40 Merge ! src/share/vm/runtime/arguments.cpp Changeset: 2c24ef16533d Author: kvn Date: 2011-09-09 13:47 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2c24ef16533d 7035946: Up to 15% regression on JDK 7 b136 vs b135 on specjvm2008.crypto.rsa on x64 Summary: Revert changes which caused regression. Reviewed-by: never ! src/share/vm/opto/loopnode.cpp Changeset: c565834fb592 Author: never Date: 2011-09-10 00:11 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c565834fb592 7088020: SEGV in JNIHandleBlock::release_block Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/share/vm/runtime/stubRoutines.cpp ! src/share/vm/runtime/stubRoutines.hpp + test/compiler/7088020/Test7088020.java Changeset: e6b1331a51d2 Author: never Date: 2011-09-10 17:29 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/e6b1331a51d2 7086585: make Java field injection more flexible Reviewed-by: jrose, twisti, kvn, coleenp ! agent/src/share/classes/sun/jvm/hotspot/oops/Field.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/test/jdi/sasanity.sh ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/cpCacheOop.cpp + src/share/vm/oops/fieldInfo.hpp + src/share/vm/oops/fieldStreams.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/reflectionUtils.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/accessFlags.hpp Changeset: f6f3bb0ee072 Author: never Date: 2011-09-11 14:48 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f6f3bb0ee072 7088955: add C2 IR support to the SA Reviewed-by: kvn ! agent/make/Makefile ! agent/make/saenv.sh ! agent/make/saenv64.sh ! agent/src/os/solaris/Makefile - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp ! agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/DebugServer.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java + agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java + agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java ! agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java + agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java + agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java + agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java + agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java + agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Field.java ! agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java + agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java ! agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java + agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java + agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java + agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java + agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java + agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java + agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java + agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java + agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java + agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java + agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java + agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java + agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java + agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java + agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java + agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java + agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java ! agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java + agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java + agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java ! make/sa.files ! src/share/vm/ci/ciArrayKlass.hpp ! src/share/vm/ci/ciClassList.hpp ! src/share/vm/ci/ciConstant.hpp ! src/share/vm/ci/ciObjectFactory.hpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/memory/allocation.hpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/opto/block.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callnode.hpp ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/optoreg.hpp ! src/share/vm/opto/parse.hpp ! src/share/vm/opto/regalloc.hpp ! src/share/vm/opto/type.hpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/vframeArray.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/growableArray.hpp Changeset: ab577c97a5f3 Author: never Date: 2011-09-12 13:51 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ab577c97a5f3 7089709: type "jushort" not found Reviewed-by: kvn, twisti ! src/share/vm/runtime/vmStructs.cpp Changeset: 2209834ccb59 Author: kvn Date: 2011-09-13 11:46 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2209834ccb59 7089632: assert(machtmp->outcnt() == 1) failed: expected for a MachTemp Summary: Replace assert with check to delete MachTemp nodes only when they are really dead. Reviewed-by: never ! src/share/vm/opto/postaloc.cpp Changeset: 10ee2b297ccd Author: bdelsart Date: 2011-09-14 10:40 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/10ee2b297ccd 7057978: improve robustness of c1 ARM back-end wrt non encodable constants Summary: ARM only, avoid assertion failures for huge constants generated by C1 shared code Reviewed-by: never, vladidan ! src/share/vm/c1/c1_LIR.cpp Changeset: 393f4b789fd0 Author: bdelsart Date: 2011-09-14 16:28 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/393f4b789fd0 7077806: ARM: java.lang.InternalError: bound subword value does not fit into the subword type Summary: shared fix necessary for ARM/PPC Reviewed-by: twisti, roland ! src/share/vm/prims/methodHandles.hpp Changeset: 35c656d0b685 Author: never Date: 2011-09-14 13:57 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/35c656d0b685 7090654: nightly failures after 7086585 Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp Changeset: 8ed53447f690 Author: iveresov Date: 2011-09-15 12:44 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8ed53447f690 Merge - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java ! src/share/vm/classfile/javaClasses.cpp Changeset: 558f525a6ebe Author: jcoomes Date: 2011-09-15 19:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/558f525a6ebe Merge ! .hgtags - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 8ab2f4108d20 Author: jcoomes Date: 2011-09-15 20:30 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8ab2f4108d20 7091294: disable quicksort tests Reviewed-by: jmasa, ysr, kvn ! src/share/vm/utilities/quickSort.cpp Changeset: 650d15d8f372 Author: jcoomes Date: 2011-09-15 20:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/650d15d8f372 7091255: Bump the hs22 build number to 06 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 5a3c2bc614ca Author: jcoomes Date: 2011-09-15 20:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5a3c2bc614ca Added tag hs22-b06 for changeset 650d15d8f372 ! .hgtags Changeset: 77e1a9153757 Author: jcoomes Date: 2011-09-16 21:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/77e1a9153757 7091545: hs23 - set hotspot version & build number Reviewed-by: tonyp, never, phh, jmasa ! make/hotspot_version Changeset: da0999c4b733 Author: dcubed Date: 2011-09-16 16:21 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/da0999c4b733 7071904: 4/4 HotSpot: Full Debug Symbols Summary: Add support for .debuginfo files for HSX libraries. Reviewed-by: poonam, dholmes, never ! make/Makefile ! make/linux/Makefile ! make/linux/makefiles/build_vm_def.sh ! make/linux/makefiles/buildtree.make ! make/linux/makefiles/defs.make ! make/linux/makefiles/gcc.make ! make/linux/makefiles/jsig.make ! make/linux/makefiles/product.make ! make/linux/makefiles/saproc.make ! make/linux/makefiles/vm.make ! make/solaris/Makefile + make/solaris/makefiles/build_vm_def.sh ! make/solaris/makefiles/buildtree.make ! make/solaris/makefiles/defs.make ! make/solaris/makefiles/dtrace.make ! make/solaris/makefiles/jsig.make ! make/solaris/makefiles/mapfile-vers ! make/solaris/makefiles/product.make ! make/solaris/makefiles/saproc.make ! make/solaris/makefiles/sparcWorks.make ! make/solaris/makefiles/vm.make Changeset: 86cbe939f0c7 Author: dcubed Date: 2011-09-19 12:18 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/86cbe939f0c7 Merge Changeset: 3607aac85aa9 Author: kevinw Date: 2011-09-22 16:48 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3607aac85aa9 7051189: Need to suppress info message if -xcheck:jni used with libjsig.so Reviewed-by: coleenp, minqi ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp + test/runtime/7051189/Xchecksig.sh Changeset: 5cceda753a4a Author: iveresov Date: 2011-09-19 15:21 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5cceda753a4a 7091764: Tiered: enable aastore profiling Summary: Turn on aastore profiling Reviewed-by: jrose, twisti ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp Changeset: 075ea0ed9e7c Author: kvn Date: 2011-09-20 08:39 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/075ea0ed9e7c 7081842: assert(Compile::current()->unique() < (uint)MaxNodeLimit) failed: Node limit exceeded Summary: Add missing node limit check in IGVN optimizer Reviewed-by: iveresov, never ! make/linux/build.sh ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java ! src/share/vm/opto/phaseX.cpp Changeset: eda6988c0d81 Author: never Date: 2011-09-20 23:50 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/eda6988c0d81 7092236: java/util/EnumSet/EnumSetBash.java fails Reviewed-by: kvn, twisti, jrose ! src/share/vm/ci/ciEnv.cpp Changeset: f08d439fab8c Author: never Date: 2011-09-25 16:03 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f08d439fab8c 7089790: integrate bsd-port changes Reviewed-by: kvn, twisti, jrose Contributed-by: Kurt Miller , Greg Lewis , Jung-uk Kim , Christos Zoulas , Landon Fuller , The FreeBSD Foundation , Michael Franz , Roger Hoover , Alexander Strange ! agent/make/Makefile + agent/src/os/bsd/BsdDebuggerLocal.c + agent/src/os/bsd/Makefile + agent/src/os/bsd/StubDebuggerLocal.c + agent/src/os/bsd/elfmacros.h + agent/src/os/bsd/libproc.h + agent/src/os/bsd/libproc_impl.c + agent/src/os/bsd/libproc_impl.h + agent/src/os/bsd/mapfile + agent/src/os/bsd/ps_core.c + agent/src/os/bsd/ps_proc.c + agent/src/os/bsd/salibelf.c + agent/src/os/bsd/salibelf.h + agent/src/os/bsd/symtab.c + agent/src/os/bsd/symtab.h + agent/src/os/bsd/test.c + agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java ! agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java + agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java + agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java ! make/Makefile + make/bsd/Makefile + make/bsd/README + make/bsd/adlc_updater + make/bsd/build.sh + make/bsd/makefiles/adjust-mflags.sh + make/bsd/makefiles/adlc.make + make/bsd/makefiles/amd64.make + make/bsd/makefiles/arm.make + make/bsd/makefiles/build_vm_def.sh + make/bsd/makefiles/buildtree.make + make/bsd/makefiles/compiler1.make + make/bsd/makefiles/compiler2.make + make/bsd/makefiles/core.make + make/bsd/makefiles/cscope.make + make/bsd/makefiles/debug.make + make/bsd/makefiles/defs.make + make/bsd/makefiles/dtrace.make + make/bsd/makefiles/fastdebug.make + make/bsd/makefiles/gcc.make + make/bsd/makefiles/hp.make + make/bsd/makefiles/hp1.make + make/bsd/makefiles/i486.make + make/bsd/makefiles/ia64.make + make/bsd/makefiles/jsig.make + make/bsd/makefiles/jvmg.make + make/bsd/makefiles/jvmti.make + make/bsd/makefiles/launcher.make + make/bsd/makefiles/mapfile-vers-debug + make/bsd/makefiles/mapfile-vers-jsig + make/bsd/makefiles/mapfile-vers-product + make/bsd/makefiles/optimized.make + make/bsd/makefiles/ppc.make + make/bsd/makefiles/product.make + make/bsd/makefiles/profiled.make + make/bsd/makefiles/rules.make + make/bsd/makefiles/sa.make + make/bsd/makefiles/saproc.make + make/bsd/makefiles/shark.make + make/bsd/makefiles/sparc.make + make/bsd/makefiles/sparcWorks.make + make/bsd/makefiles/sparcv9.make + make/bsd/makefiles/tiered.make + make/bsd/makefiles/top.make + make/bsd/makefiles/vm.make + make/bsd/makefiles/zero.make + make/bsd/makefiles/zeroshark.make + make/bsd/platform_amd64 + make/bsd/platform_amd64.suncc + make/bsd/platform_i486 + make/bsd/platform_i486.suncc + make/bsd/platform_ia64 + make/bsd/platform_sparc + make/bsd/platform_sparcv9 + make/bsd/platform_zero.in ! make/cscope.make ! make/defs.make ! make/linux/makefiles/arm.make ! make/linux/makefiles/defs.make ! make/linux/makefiles/ppc.make ! make/sa.files ! make/solaris/makefiles/defs.make ! make/windows/makefiles/defs.make ! src/cpu/x86/vm/bytes_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/copy_x86.hpp ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/jni_x86.h ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/cpu/x86/vm/stubRoutines_x86_32.cpp ! src/cpu/x86/vm/stubRoutines_x86_64.cpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/zero/vm/bytes_zero.hpp ! src/cpu/zero/vm/globals_zero.hpp ! src/cpu/zero/vm/interp_masm_zero.cpp ! src/cpu/zero/vm/stubGenerator_zero.cpp ! src/cpu/zero/vm/stubRoutines_zero.cpp ! src/cpu/zero/vm/vm_version_zero.cpp + src/os/bsd/vm/attachListener_bsd.cpp + src/os/bsd/vm/c1_globals_bsd.hpp + src/os/bsd/vm/c2_globals_bsd.hpp + src/os/bsd/vm/chaitin_bsd.cpp + src/os/bsd/vm/decoder_bsd.cpp + src/os/bsd/vm/dtraceJSDT_bsd.cpp + src/os/bsd/vm/globals_bsd.hpp + src/os/bsd/vm/interfaceSupport_bsd.hpp + src/os/bsd/vm/jsig.c + src/os/bsd/vm/jvm_bsd.cpp + src/os/bsd/vm/jvm_bsd.h + src/os/bsd/vm/mutex_bsd.cpp + src/os/bsd/vm/mutex_bsd.inline.hpp + src/os/bsd/vm/osThread_bsd.cpp + src/os/bsd/vm/osThread_bsd.hpp + src/os/bsd/vm/os_bsd.cpp + src/os/bsd/vm/os_bsd.hpp + src/os/bsd/vm/os_bsd.inline.hpp + src/os/bsd/vm/os_share_bsd.hpp + src/os/bsd/vm/perfMemory_bsd.cpp + src/os/bsd/vm/stubRoutines_bsd.cpp + src/os/bsd/vm/threadCritical_bsd.cpp + src/os/bsd/vm/thread_bsd.inline.hpp + src/os/bsd/vm/vmError_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/posix/launcher/java_md.c ! src/os/posix/launcher/launcher.script + src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/bsd_x86_32.ad + src/os_cpu/bsd_x86/vm/bsd_x86_32.s + src/os_cpu/bsd_x86/vm/bsd_x86_64.ad + src/os_cpu/bsd_x86/vm/bsd_x86_64.s + src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp + src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp + src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp + src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp + src/os_cpu/bsd_zero/vm/assembler_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp + src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp + src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp + src/os_cpu/bsd_zero/vm/vm_version_bsd_zero.cpp ! src/os_cpu/linux_zero/vm/globals_linux_zero.hpp ! src/share/vm/adlc/adlc.hpp ! src/share/vm/c1/c1_globals.hpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/code/stubs.hpp ! src/share/vm/compiler/disassembler.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp ! src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ! src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/interpreter/abstractInterpreter.hpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/memory/allocation.cpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/gcLocker.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/resourceArea.cpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/threadLocalAllocBuffer.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/constantPoolOop.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/markOop.cpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oopsHierarchy.cpp ! src/share/vm/oops/typeArrayOop.hpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/prims/forte.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/nativeLookup.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/atomic.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.inline.hpp ! src/share/vm/runtime/interfaceSupport.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/javaCalls.hpp ! src/share/vm/runtime/javaFrameAnchor.hpp ! src/share/vm/runtime/jniHandles.cpp ! src/share/vm/runtime/memprofiler.cpp ! src/share/vm/runtime/mutex.cpp ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/mutexLocker.hpp ! src/share/vm/runtime/objectMonitor.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/osThread.hpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/task.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/threadLocalStorage.cpp ! src/share/vm/runtime/threadLocalStorage.hpp ! src/share/vm/runtime/timer.cpp ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/runtime/vmThread.hpp ! src/share/vm/runtime/vm_operations.cpp ! src/share/vm/runtime/vm_version.cpp ! src/share/vm/utilities/accessFlags.cpp ! src/share/vm/utilities/array.cpp ! src/share/vm/utilities/bitMap.cpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/decoder.cpp ! src/share/vm/utilities/decoder.hpp ! src/share/vm/utilities/elfFile.cpp ! src/share/vm/utilities/elfFile.hpp ! src/share/vm/utilities/elfStringTable.cpp ! src/share/vm/utilities/elfStringTable.hpp ! src/share/vm/utilities/elfSymbolTable.cpp ! src/share/vm/utilities/elfSymbolTable.hpp ! src/share/vm/utilities/events.cpp ! src/share/vm/utilities/exceptions.cpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/globalDefinitions_gcc.hpp ! src/share/vm/utilities/globalDefinitions_sparcWorks.hpp ! src/share/vm/utilities/globalDefinitions_visCPP.hpp ! src/share/vm/utilities/growableArray.cpp ! src/share/vm/utilities/histogram.hpp ! src/share/vm/utilities/macros.hpp ! src/share/vm/utilities/ostream.cpp ! src/share/vm/utilities/preserveException.hpp ! src/share/vm/utilities/taskqueue.cpp ! src/share/vm/utilities/taskqueue.hpp ! src/share/vm/utilities/vmError.cpp ! src/share/vm/utilities/workgroup.hpp ! test/Makefile ! test/jprt.config ! test/runtime/6929067/Test6929067.sh Changeset: a92cdbac8b9e Author: kvn Date: 2011-09-26 10:24 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/a92cdbac8b9e 7081933: Use zeroing elimination optimization for large array Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it. Reviewed-by: twisti ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/memory/oopFactory.cpp ! src/share/vm/memory/oopFactory.hpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/oops/typeArrayKlass.hpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/opto/runtime.hpp Changeset: cb315dc80374 Author: never Date: 2011-09-29 09:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/cb315dc80374 7092278: "jmap -finalizerinfo" throws "sun.jvm.hotspot.utilities.AssertionFailure: invalid cp index 0 137" Reviewed-by: kvn ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java + agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 098acdf97f09 Author: never Date: 2011-09-29 13:47 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/098acdf97f09 7096016: SA build still produces "arg list too long" errors Reviewed-by: kvn, never Contributed-by: volker.simonis at gmail.com ! make/linux/makefiles/sa.make ! make/sa.files ! make/solaris/makefiles/sa.make ! make/windows/makefiles/sa.make Changeset: dc45ae774613 Author: iveresov Date: 2011-09-29 23:09 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/dc45ae774613 7096639: Tiered: Incorrect counter overflow handling for inlined methods Summary: Enable invocation events for inlinees Reviewed-by: kvn ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/runtime/globals.hpp Changeset: ae839d1e7d4c Author: roland Date: 2011-09-30 13:47 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ae839d1e7d4c 7096010: c2: running with +PrintOptoAssembly crashes the VM when $constanttablebase is used Summary: ADLC generates code to prepare the register string to be printed in a char array but then calls print without the char array as an argument. Reviewed-by: never ! src/share/vm/adlc/formssel.cpp Changeset: 5d871c1ff17c Author: iveresov Date: 2011-09-30 13:48 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5d871c1ff17c Merge ! make/Makefile ! make/linux/makefiles/defs.make ! make/solaris/makefiles/defs.make ! src/os/linux/vm/os_linux.cpp Changeset: da883b9e6d37 Author: jcoomes Date: 2011-09-30 18:27 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/da883b9e6d37 Merge ! .hgtags - agent/src/os/solaris/dbx/Makefile - agent/src/os/solaris/dbx/README - agent/src/os/solaris/dbx/README-commands.txt - agent/src/os/solaris/dbx/helloWorld.cpp - agent/src/os/solaris/dbx/proc_service_2.h - agent/src/os/solaris/dbx/shell_imp.h - agent/src/os/solaris/dbx/svc_agent_dbx.cpp - agent/src/os/solaris/dbx/svc_agent_dbx.hpp - agent/src/os/win32/BasicList.hpp - agent/src/os/win32/Buffer.cpp - agent/src/os/win32/Buffer.hpp - agent/src/os/win32/Dispatcher.cpp - agent/src/os/win32/Dispatcher.hpp - agent/src/os/win32/Handler.hpp - agent/src/os/win32/IOBuf.cpp - agent/src/os/win32/IOBuf.hpp - agent/src/os/win32/LockableList.hpp - agent/src/os/win32/Makefile - agent/src/os/win32/Message.hpp - agent/src/os/win32/Monitor.cpp - agent/src/os/win32/Monitor.hpp - agent/src/os/win32/README-commands.txt - agent/src/os/win32/README.txt - agent/src/os/win32/Reaper.cpp - agent/src/os/win32/Reaper.hpp - agent/src/os/win32/SwDbgSrv.cpp - agent/src/os/win32/SwDbgSrv.dsp - agent/src/os/win32/SwDbgSrv.dsw - agent/src/os/win32/SwDbgSub.cpp - agent/src/os/win32/SwDbgSub.dsp - agent/src/os/win32/initWinsock.cpp - agent/src/os/win32/initWinsock.hpp - agent/src/os/win32/ioUtils.cpp - agent/src/os/win32/ioUtils.hpp - agent/src/os/win32/isNT4.cpp - agent/src/os/win32/isNT4.hpp - agent/src/os/win32/libInfo.cpp - agent/src/os/win32/libInfo.hpp - agent/src/os/win32/nt4internals.cpp - agent/src/os/win32/nt4internals.hpp - agent/src/os/win32/ports.h - agent/src/os/win32/procList.cpp - agent/src/os/win32/procList.hpp - agent/src/os/win32/serverLists.cpp - agent/src/os/win32/serverLists.hpp - agent/src/os/win32/toolHelp.cpp - agent/src/os/win32/toolHelp.hpp - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Thread.java - agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java - agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java - make/solaris/makefiles/mapfile-vers-nonproduct - src/share/vm/runtime/reflectionCompat.hpp Changeset: 49ed7eacfd16 Author: jcoomes Date: 2011-09-30 18:27 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/49ed7eacfd16 Added tag hs23-b01 for changeset da883b9e6d37 ! .hgtags Changeset: 7c20d272643f Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/7c20d272643f Added tag jdk8-b08 for changeset 49ed7eacfd16 ! .hgtags Changeset: edd5f85e2de7 Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/edd5f85e2de7 Added tag jdk8-b09 for changeset 7c20d272643f ! .hgtags Changeset: 95607b70acb5 Author: jcoomes Date: 2011-09-30 22:54 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/95607b70acb5 7096124: Bump the hs23 build number to 02 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 4f93f0d00802 Author: tonyp Date: 2011-09-20 09:59 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4f93f0d00802 7059019: G1: add G1 support to the SA Summary: Extend the SA to recognize the G1CollectedHeap and implement any code that's needed by our serviceability tools (jmap, jinfo, jstack, etc.) that depend on the SA. Reviewed-by: never, poonam, johnc ! agent/make/Makefile + agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1CollectedHeap.java + agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegion.java + agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java ! agent/src/share/classes/sun/jvm/hotspot/gc_interface/CollectedHeapName.java ! agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java ! make/sa.files ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp + src/share/vm/gc_implementation/g1/vmStructs_g1.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 663cb89032b1 Author: johnc Date: 2011-09-20 15:39 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/663cb89032b1 7092412: G1: Some roots not marked during an initial mark that gets an evacuation failure Summary: As a result of the changes for 7080389, an evacuation failure during an initial mark pause may result in some root objects not being marked. Pass whether the caller is a root scanning closure into the evacuation failure handling code so that the thread that successfully forwards an object to itself also marks the object. Reviewed-by: ysr, brutisso, tonyp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp Changeset: 114e52976463 Author: tonyp Date: 2011-09-21 01:27 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/114e52976463 7045232: G1: pool names are inconsistent with other collectors (don't have 'Space') Summary: Make sure the eden and survivor pools have "Space" in their name. Reviewed-by: jmasa, ysr ! src/share/vm/services/g1MemoryPool.cpp Changeset: 1847b501ae74 Author: johnc Date: 2011-09-21 10:04 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/1847b501ae74 7068215: G1: Print reference processing time during remark Summary: Displays the elapsed time taken to perform reference processing during remark as part of the PrintGCDetails output. Reviewed-by: ysr ! src/share/vm/gc_implementation/g1/concurrentMark.cpp Changeset: d912b598c6c3 Author: tonyp Date: 2011-09-21 13:36 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/d912b598c6c3 7091032: G1: assert failure when NewRatio is used Summary: The desired min / max heap sizes are miscalculated at initialization when NewRatio is used. The changeset also includes an additional small change to turn a print statement into a warning. Reviewed-by: johnc, jmasa, ysr, brutisso ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Changeset: 5cc33133bc6d Author: johnc Date: 2011-09-21 15:24 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5cc33133bc6d 7092245: G1: Wrong format specifier in G1PrintRegionLivenessInfo header output Summary: Cast HeapRegion::GrainBytes to size_t in output statement. Reviewed-by: ysr, brutisso, pbk, tonyp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp Changeset: f0ecbe78fc7b Author: tonyp Date: 2011-09-22 07:18 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f0ecbe78fc7b 7092238: G1: Uninitialized field gc_efficiency in G1PrintRegionLivenessInfo output Reviewed-by: jcoomes, johnc ! src/share/vm/gc_implementation/g1/heapRegion.cpp Changeset: 4dfb2df418f2 Author: johnc Date: 2011-09-22 10:57 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4dfb2df418f2 6484982: G1: process references during evacuation pauses Summary: G1 now uses two reference processors - one is used by concurrent marking and the other is used by STW GCs (both full and incremental evacuation pauses). In an evacuation pause, the reference processor is embedded into the closures used to scan objects. Doing so causes causes reference objects to be 'discovered' by the reference processor. At the end of the evacuation pause, these discovered reference objects are processed - preserving (and copying) referent objects (and their reachable graphs) as appropriate. Reviewed-by: ysr, jwilhelm, brutisso, stefank, tonyp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/runtime/thread.cpp Changeset: 8229bd737950 Author: tonyp Date: 2011-09-23 16:07 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8229bd737950 7075646: G1: fix inconsistencies in the monitoring data Summary: Fixed a few inconsistencies in the monitoring data, in particular when reported from jstat. Reviewed-by: jmasa, brutisso, johnc ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/shared/generationCounters.cpp ! src/share/vm/gc_implementation/shared/generationCounters.hpp ! src/share/vm/services/g1MemoryPool.cpp ! src/share/vm/services/g1MemoryPool.hpp Changeset: e807478bf9ca Author: brutisso Date: 2011-09-26 10:14 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/e807478bf9ca 7091366: re-enable quicksort tests Summary: Added extern "C" to make it build with JDK6 compilers Reviewed-by: jwilhelm, kvn ! src/share/vm/utilities/quickSort.cpp Changeset: 273b46400613 Author: johnc Date: 2011-09-28 10:36 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/273b46400613 7086533: G1: assert(!_g1->is_obj_dead(obj)): We should not be preserving dead objs: g1CollectedHeap.cpp:3835 Summary: Some objects may not be marked in the event of an evacuation failure in a partially young GC, during a marking cycle. Avoid this situation by not allowing partially young GCs during a marking cycle. Reviewed-by: tonyp, ysr, brutisso ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Changeset: 811ec3d0833b Author: johnc Date: 2011-10-03 12:49 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/811ec3d0833b 7097053: G1: assert(da ? referent->is_oop() : referent->is_oop_or_null()) failed: referenceProcessor.cpp:1054 Summary: During remembered set scanning, the reference processor could discover a reference object whose referent was in the process of being copied and so may not be completely initialized. Do not perform reference discovery during remembered set scanning. Reviewed-by: tonyp, ysr ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp Changeset: 81aa07130d30 Author: tonyp Date: 2011-10-03 19:04 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/81aa07130d30 7097048: G1: extend the G1 SA changes to print per-heap space information Reviewed-by: brutisso, johnc ! agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1CollectedHeap.java + agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1MonitoringSupport.java ! agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp ! src/share/vm/gc_implementation/g1/vmStructs_g1.hpp Changeset: c63b928b212b Author: stefank Date: 2011-09-12 16:09 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/c63b928b212b 7021322: assert(object_end <= top()) failed: Object crosses promotion LAB boundary Summary: Pass the same object size value to both allocate and unallocate_object Reviewed-by: ysr, brutisso ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp Changeset: 65a8ff39a6da Author: johnc Date: 2011-10-05 08:44 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/65a8ff39a6da 7095194: G1: HeapRegion::GrainBytes, GrainWords, and CardsPerRegion should be size_t Summary: Declare GrainBytes, GrainWords, and CardsPerRegion as size_t. Reviewed-by: jcoomes, tonyp, jmasa ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/gc_implementation/g1/vmStructs_g1.hpp Changeset: fd65bc7c09b6 Author: tonyp Date: 2011-10-06 13:28 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/fd65bc7c09b6 Merge ! agent/make/Makefile ! make/sa.files ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 246daf2c601d Author: brutisso Date: 2011-09-28 08:21 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/246daf2c601d 7005808: G1: re-enable ReduceInitialCardMarks for G1 Summary: Remove the extra guard to allow G1 to use ReduceInitialCardMarks Reviewed-by: jmasa, tonyp, johnc, ysr ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: b9390528617c Author: ysr Date: 2011-10-06 18:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/b9390528617c 7095236: G1: _markedRegions never contains NULL regions Summary: Removed the code for skipping over NULL regions in _markedRegions, replacing it with an assertion that a NULL region is never encountered; removed dead methods, remove() and remove_region(), and inlined a simplified addRegion() directly into fillCache(). Reviewed-by: brutisso, tonyp ! src/share/vm/gc_implementation/g1/collectionSetChooser.cpp ! src/share/vm/gc_implementation/g1/collectionSetChooser.hpp Changeset: f32dae5d5677 Author: ysr Date: 2011-10-10 08:40 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/f32dae5d5677 Merge Changeset: 3f24f946bc2d Author: brutisso Date: 2011-10-11 10:21 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3f24f946bc2d 7099454: /bin/sh does not support syntax used in the src/os/posix/launcher/launcher.script shell script Summary: Also reviewed by mikael.gerdin at oracle.com; Changed to the `` syntax instead. Also changed "source" to ".". Reviewed-by: never, stefank, dsamersoff, rottenha ! src/os/posix/launcher/launcher.script Changeset: d1bdeef3e3e2 Author: johnc Date: 2011-10-12 10:25 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/d1bdeef3e3e2 7098282: G1: assert(interval >= 0) failed: Sanity check, referencePolicy.cpp: 76 Summary: There is a race between one thread successfully forwarding and copying the klass mirror for the SoftReference class (including the static master clock) and another thread attempting to use the master clock while attempting to discover a soft reference object. Maintain a shadow copy of the soft reference master clock and use the shadow during reference discovery and reference processing. Reviewed-by: tonyp, brutisso, ysr ! src/share/vm/memory/referencePolicy.cpp ! src/share/vm/memory/referencePolicy.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp Changeset: e4f412d2b75d Author: jcoomes Date: 2011-10-14 18:17 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/e4f412d2b75d Merge ! .hgtags Changeset: d815de2e85e5 Author: jcoomes Date: 2011-10-14 18:21 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/d815de2e85e5 Added tag hs23-b02 for changeset e4f412d2b75d ! .hgtags Changeset: 3170e4044f2d Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/3170e4044f2d Added tag jdk8-b10 for changeset d815de2e85e5 ! .hgtags Changeset: bc257a801090 Author: jcoomes Date: 2011-10-14 21:45 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/bc257a801090 7101096: Bump the hs23 build number to 03 Reviewed-by: johnc Contributed-by: alejandro.murillo at oracle.com ! make/hotspot_version Changeset: 940513efe83a Author: iveresov Date: 2011-10-04 10:07 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/940513efe83a 7097679: Tiered: events with bad bci to Gotos reduced from Ifs Summary: Save bci of instruction that produced Goto and use it to call back to runtime Reviewed-by: kvn, never ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: ec5ce9326985 Author: kvn Date: 2011-10-04 14:30 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ec5ce9326985 6865265: JVM crashes with "missing exception handler" error Summary: Retry the call to fast_exception_handler_bci_for() after it returned with a pending exception. Don't cache the exception handler pc computed by compute_compiled_exc_handler() if the handler is for another (nested) exception. Reviewed-by: kamg, kvn Contributed-by: volker.simonis at gmail.com ! src/share/vm/opto/runtime.cpp ! src/share/vm/runtime/sharedRuntime.cpp + test/compiler/6865265/StackOverflowBug.java Changeset: eba73e0c7780 Author: bdelsart Date: 2011-10-07 13:28 +0200 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/eba73e0c7780 7096366: PPC: corruption of floating-point values with DeoptimizeALot Summary: fix for a deoptimization found on PPC, which could impact other big endian platforms Reviewed-by: roland, dholmes ! src/share/vm/c1/c1_LinearScan.cpp Changeset: 0abefdb54d21 Author: twisti Date: 2011-10-11 02:19 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/0abefdb54d21 7081938: JSR292: assert(magic_number_2() == MAGIC_NUMBER_2) failed Reviewed-by: never, bdelsart ! src/cpu/x86/vm/frame_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.hpp Changeset: 5eb9169b1a14 Author: twisti Date: 2011-10-12 21:00 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/5eb9169b1a14 7092712: JSR 292: unloaded invokedynamic call sites can lead to a crash with signature types not on BCP Reviewed-by: jrose, never ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/ci/ciObjectFactory.hpp ! src/share/vm/ci/ciSignature.cpp ! src/share/vm/ci/ciSignature.hpp Changeset: a786fdc79c5f Author: never Date: 2011-10-13 14:08 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/a786fdc79c5f 7100165: JSR 292: leftover printing code in methodHandleWalk.cpp Reviewed-by: kvn, twisti ! src/share/vm/prims/methodHandleWalk.cpp Changeset: 4bac06a82bc3 Author: kvn Date: 2011-10-14 10:07 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4bac06a82bc3 7100757: The BitSet.nextSetBit() produces incorrect result in 32bit VM on Sparc Summary: Instruction countTrailingZerosL() should use iRegIsafe dst register since it is used in long arithmetic. Reviewed-by: never, twisti ! src/cpu/sparc/vm/sparc.ad + test/compiler/7100757/Test7100757.java Changeset: 11d17c7d2ee6 Author: iveresov Date: 2011-10-16 02:59 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/11d17c7d2ee6 Merge Changeset: 2ef3386478e6 Author: dholmes Date: 2011-10-10 21:01 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/2ef3386478e6 7096278: Update the VM name to indicate it is an embedded build Reviewed-by: kvn, never, jcoomes, bobv ! src/share/vm/runtime/vm_version.cpp Changeset: 436b4a3231bf Author: dcubed Date: 2011-10-13 09:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/436b4a3231bf 7098194: integrate macosx-port changes Summary: Integrate bsd-port/hotspot and macosx-port/hotspot changes as of 2011.09.29. Reviewed-by: kvn, dholmes, never, phh Contributed-by: Christos Zoulas , Greg Lewis , Kurt Miller , Alexander Strange , Mike Swingler , Roger Hoover , Victor Hernandez , Pratik Solanki ! .hgignore + agent/src/os/bsd/MacosxDebuggerLocal.m ! agent/src/os/bsd/Makefile ! agent/src/os/bsd/symtab.c ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java ! make/Makefile ! make/bsd/makefiles/adlc.make ! make/bsd/makefiles/buildtree.make ! make/bsd/makefiles/defs.make ! make/bsd/makefiles/dtrace.make ! make/bsd/makefiles/gcc.make ! make/bsd/makefiles/sa.make ! make/bsd/makefiles/saproc.make ! make/bsd/makefiles/top.make ! make/bsd/makefiles/vm.make ! make/defs.make - make/templates/bsd-header ! src/cpu/x86/vm/jni_x86.h + src/os/bsd/dtrace/generateJvmOffsets.cpp + src/os/bsd/dtrace/generateJvmOffsets.h + src/os/bsd/dtrace/generateJvmOffsetsMain.c + src/os/bsd/dtrace/hotspot.d + src/os/bsd/dtrace/hotspot_jni.d + src/os/bsd/dtrace/hs_private.d + src/os/bsd/dtrace/jhelper.d + src/os/bsd/dtrace/jvm_dtrace.c + src/os/bsd/dtrace/jvm_dtrace.h + src/os/bsd/dtrace/libjvm_db.c + src/os/bsd/dtrace/libjvm_db.h ! src/os/bsd/vm/dtraceJSDT_bsd.cpp ! src/os/bsd/vm/jvm_bsd.h ! src/os/bsd/vm/os_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os_cpu/bsd_x86/vm/bsd_x86_32.s ! src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp ! src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp ! src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/objectMonitor.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/runtimeService.cpp ! src/share/vm/services/threadService.cpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/dtrace.hpp + src/share/vm/utilities/dtrace_usdt2_disabled.hpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/hashtable.cpp Changeset: 23a1c8de9d51 Author: dholmes Date: 2011-10-17 01:40 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/23a1c8de9d51 Merge - make/templates/bsd-header ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/thread.cpp Changeset: 8187c94a9a87 Author: never Date: 2011-10-17 11:00 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/8187c94a9a87 7093690: JSR292: SA-JDI AssertionFailure: Expected raw sp likely got real sp, value was Reviewed-by: kvn, twisti ! agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java Changeset: e5928e7dab26 Author: never Date: 2011-10-17 21:38 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/e5928e7dab26 7098528: crash with java -XX:+ExtendedDTraceProbes Reviewed-by: kvn ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/oops/instanceMirrorKlass.cpp Changeset: 16f9fa2bf76c Author: kvn Date: 2011-10-19 10:52 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/16f9fa2bf76c 7100935: win32: memmove is not atomic but is used for pd_conjoint_*_atomic operations Summary: replace the call to memmove by a simple copy loop Reviewed-by: dholmes, kvn, never Contributed-by: axel.siebenborn at sap.com, volker.simonis at gmail.com ! src/cpu/sparc/vm/copy_sparc.hpp ! src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp + test/runtime/7100935/TestConjointAtomicArraycopy.java + test/runtime/7100935/TestShortArraycopy.java Changeset: 1179647ee175 Author: iveresov Date: 2011-10-21 00:58 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/1179647ee175 Merge Changeset: ec4b032a4977 Author: tonyp Date: 2011-10-13 13:54 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/ec4b032a4977 7098085: G1: partially-young GCs not initiated under certain circumstances Reviewed-by: ysr, brutisso ! src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Changeset: 074f0252cc13 Author: tonyp Date: 2011-10-14 11:12 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/074f0252cc13 7088680: G1: Cleanup in the G1CollectorPolicy class Summary: Removed unused fields and methods, removed the G1CollectoryPolicy_BestRegionsFirst class and folded its functionality into the G1CollectorPolicy class. Reviewed-by: ysr, brutisso, jcoomes ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/memory/universe.cpp Changeset: bf2d2b8b1726 Author: johnc Date: 2011-10-17 09:57 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/bf2d2b8b1726 7095243: Disambiguate ReferenceProcessor::_discoveredSoftRefs Summary: Add a new, separate, pointer to the base of the array of discovered reference lists and use this new pointer in places where we iterate over the entire array. Reviewed-by: ysr, brutisso ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp Changeset: 647872693572 Author: tonyp Date: 2011-10-21 07:24 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/647872693572 Merge Changeset: 4d3850d9d326 Author: jcoomes Date: 2011-10-21 10:27 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4d3850d9d326 Merge - make/templates/bsd-header Changeset: 4538caeef7b6 Author: jcoomes Date: 2011-10-21 10:27 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/hotspot/rev/4538caeef7b6 Added tag hs23-b03 for changeset 4d3850d9d326 ! .hgtags From lana.steuck at oracle.com Wed Oct 26 23:52:52 2011 From: lana.steuck at oracle.com (lana.steuck at oracle.com) Date: Thu, 27 Oct 2011 06:52:52 +0000 Subject: hg: jdk8/awt/jdk: 63 new changesets Message-ID: <20111027070324.2E01047162@hg.openjdk.java.net> Changeset: 19f0a3db863c Author: katleman Date: 2011-09-22 16:02 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/19f0a3db863c Added tag jdk8-b06 for changeset bdb870cc269e ! .hgtags Changeset: ac9349be6821 Author: katleman Date: 2011-09-29 18:53 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/ac9349be6821 Added tag jdk8-b07 for changeset 19f0a3db863c ! .hgtags Changeset: b92341e9ae56 Author: bae Date: 2011-09-19 05:56 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/b92341e9ae56 7088287: libpng need to be updated. Reviewed-by: jgodinez, prr ! src/share/native/sun/awt/libpng/CHANGES ! src/share/native/sun/awt/libpng/LICENSE ! src/share/native/sun/awt/libpng/README ! src/share/native/sun/awt/libpng/png.c ! src/share/native/sun/awt/libpng/png.h ! src/share/native/sun/awt/libpng/pngconf.h + src/share/native/sun/awt/libpng/pngdebug.h ! src/share/native/sun/awt/libpng/pngerror.c - src/share/native/sun/awt/libpng/pnggccrd.c ! src/share/native/sun/awt/libpng/pngget.c + src/share/native/sun/awt/libpng/pnginfo.h + src/share/native/sun/awt/libpng/pnglibconf.h ! src/share/native/sun/awt/libpng/pngmem.c ! src/share/native/sun/awt/libpng/pngpread.c + src/share/native/sun/awt/libpng/pngpriv.h ! src/share/native/sun/awt/libpng/pngread.c ! src/share/native/sun/awt/libpng/pngrio.c ! src/share/native/sun/awt/libpng/pngrtran.c ! src/share/native/sun/awt/libpng/pngrutil.c ! src/share/native/sun/awt/libpng/pngset.c + src/share/native/sun/awt/libpng/pngstruct.h ! src/share/native/sun/awt/libpng/pngtest.c ! src/share/native/sun/awt/libpng/pngtrans.c - src/share/native/sun/awt/libpng/pngvcrd.c ! src/share/native/sun/awt/libpng/pngwio.c ! src/share/native/sun/awt/libpng/pngwrite.c ! src/share/native/sun/awt/libpng/pngwtran.c ! src/share/native/sun/awt/libpng/pngwutil.c ! src/share/native/sun/awt/splashscreen/splashscreen_png.c Changeset: bbf4e1faf859 Author: lana Date: 2011-09-23 16:50 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/bbf4e1faf859 Merge Changeset: c662c8cf25d6 Author: lana Date: 2011-09-26 14:29 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/c662c8cf25d6 Merge - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: aac4041609bb Author: lana Date: 2011-09-26 14:30 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/aac4041609bb Merge Changeset: e0c1282a0ead Author: coffeys Date: 2011-09-13 11:21 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/e0c1282a0ead 7082769: FileInputStream/FileOutputStream/RandomAccessFile allow file descriptor be closed when still in use Reviewed-by: alanb ! src/share/classes/java/io/FileInputStream.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/io/RandomAccessFile.java + test/java/io/etc/FileDescriptorSharing.java Changeset: 04672e957da0 Author: mchung Date: 2011-09-14 08:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/04672e957da0 6915797: Remove sun.tools.jar.JarImageSource that is not used 7090178: Move java.util.XMLUtils to another package to avoid split package Reviewed-by: alanb, sherman ! make/java/java/FILES_java.gmk ! make/sun/Makefile + make/sun/util/Makefile ! src/share/classes/java/util/Properties.java - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java + src/share/classes/sun/util/xml/XMLUtils.java Changeset: 2a8072c7cf99 Author: darcy Date: 2011-09-14 11:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/2a8072c7cf99 6879143: java.math.BigInteger misses the xxxValueExact methods Reviewed-by: alanb ! src/share/classes/java/math/BigInteger.java + test/java/math/BigInteger/TestValueExact.java Changeset: 84da01e00e6c Author: darcy Date: 2011-09-14 13:09 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/84da01e00e6c 7088500: there is no @since tag on SafeVarargs Reviewed-by: mduigou ! src/share/classes/java/lang/SafeVarargs.java Changeset: 52bc200b14e5 Author: mbankal Date: 2011-09-14 21:43 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/52bc200b14e5 7049963: DISTINGUISHED NAMES FOR CERT ARE ESCAPED IN JROCKIT 1.6(NOT COMPATIBLE WITH JROC Reviewed-by: mullan ! src/share/classes/sun/security/x509/AVA.java Changeset: 1260be51581f Author: mbankal Date: 2011-09-14 22:36 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/1260be51581f Merge Changeset: f114bddac6d6 Author: peytoia Date: 2011-09-15 14:45 +0900 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f114bddac6d6 7090844: Support a timezone whose offset is changed more than once in the future Reviewed-by: okutsu ! make/tools/src/build/tools/javazic/Mappings.java Changeset: 5e403e9fa34a Author: peytoia Date: 2011-09-15 15:02 +0900 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/5e403e9fa34a 7090843: (tz) Support tzdata2011j Reviewed-by: okutsu ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/africa ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/iso3166.tab ! make/sun/javazic/tzdata/northamerica ! make/sun/javazic/tzdata/southamerica ! make/sun/javazic/tzdata/zone.tab ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java Changeset: 9281d65f911a Author: michaelm Date: 2011-09-15 13:50 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/9281d65f911a 7073491: -Dsun.net.maxDatagramSockets=1 does not work correctly with system.gc() Reviewed-by: ngmr ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java Changeset: 34fc7bbbb465 Author: michaelm Date: 2011-09-15 14:10 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/34fc7bbbb465 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java Changeset: 75d763111eec Author: chegar Date: 2011-09-16 12:09 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/75d763111eec 7090158: Networking Libraries don't build with javac -Werror Summary: Minor changes to networking java files to remove warnings Reviewed-by: chegar, weijun, hawtin Contributed-by: kurchi.subhra.hazra at oracle.com, sasha_bu at hotmail.com ! make/com/sun/net/httpserver/Makefile ! make/com/sun/net/ssl/Makefile ! make/java/net/Makefile ! make/javax/Makefile ! make/javax/others/Makefile ! make/sun/net/Makefile ! make/sun/net/spi/Makefile ! make/sun/net/spi/nameservice/dns/Makefile ! src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java ! src/share/classes/com/sun/net/httpserver/Headers.java ! src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java ! src/share/classes/com/sun/net/ssl/SSLSecurity.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java ! src/share/classes/java/net/ContentHandler.java ! src/share/classes/java/net/CookieManager.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/HttpURLConnection.java ! src/share/classes/java/net/Inet4Address.java ! src/share/classes/java/net/Inet4AddressImpl.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/Inet6AddressImpl.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/Proxy.java ! src/share/classes/java/net/ProxySelector.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocketPermission.java ! src/share/classes/java/net/URL.java ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/java/net/URLConnection.java ! src/share/classes/javax/net/ssl/SSLServerSocketFactory.java ! src/share/classes/javax/net/ssl/SSLSocketFactory.java ! src/share/classes/sun/misc/REException.java ! src/share/classes/sun/net/TransferProtocolClient.java ! src/share/classes/sun/net/ftp/FtpClientProvider.java ! src/share/classes/sun/net/httpserver/Request.java ! src/share/classes/sun/net/httpserver/SSLStreams.java ! src/share/classes/sun/net/httpserver/ServerImpl.java ! src/share/classes/sun/net/idn/UCharacterEnums.java ! src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java ! src/share/classes/sun/net/www/HeaderParser.java ! src/share/classes/sun/net/www/MessageHeader.java ! src/share/classes/sun/net/www/MimeTable.java ! src/share/classes/sun/net/www/URLConnection.java ! src/share/classes/sun/net/www/content/image/gif.java ! src/share/classes/sun/net/www/content/image/jpeg.java ! src/share/classes/sun/net/www/content/image/png.java ! src/share/classes/sun/net/www/content/image/x_xbitmap.java ! src/share/classes/sun/net/www/content/image/x_xpixmap.java ! src/share/classes/sun/net/www/http/KeepAliveStream.java ! src/share/classes/sun/net/www/protocol/gopher/GopherClient.java ! src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java ! src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/net/www/protocol/http/Negotiator.java ! src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/share/classes/sun/net/www/protocol/mailto/Handler.java ! src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/solaris/classes/java/net/PlainDatagramSocketImpl.java ! src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java ! src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java Changeset: ccf2a19d7d87 Author: alanb Date: 2011-09-18 12:33 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/ccf2a19d7d87 7091935: (fs) Polling based WatchService not used on Linux Reviewed-by: forax ! make/java/nio/Makefile Changeset: 418628a08ae7 Author: darcy Date: 2011-09-18 18:14 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/418628a08ae7 7091682: Move sun.misc.FpUtils code into java.lang.Math Reviewed-by: alanb ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/StrictMath.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/sun/misc/FloatingDecimal.java ! src/share/classes/sun/misc/FormattedFloatingDecimal.java ! src/share/classes/sun/misc/FpUtils.java ! test/java/lang/Double/ToHexString.java ! test/java/lang/Math/CubeRootTests.java ! test/java/lang/Math/Expm1Tests.java ! test/java/lang/Math/HyperbolicTests.java ! test/java/lang/Math/HypotTests.java ! test/java/lang/Math/IeeeRecommendedTests.java ! test/java/lang/Math/Log10Tests.java ! test/java/lang/Math/Log1pTests.java ! test/java/lang/Math/Rint.java Changeset: e3d78fe803d4 Author: michaelm Date: 2011-09-19 15:14 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/e3d78fe803d4 7091369: DatagramSocket/Limit.java failing on 8 and 7u2 Reviewed-by: chegar, alanb ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java Changeset: 8fe6d94683af Author: weijun Date: 2011-09-20 12:40 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/8fe6d94683af 7091290: fails to build jdk8 b05 Embedded build Reviewed-by: xuelei, dholmes ! src/share/classes/org/ietf/jgss/Oid.java Changeset: c77b41652266 Author: mduigou Date: 2011-09-20 12:27 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/c77b41652266 7074264: Switches to packages tree view and adds unit tests to sources Reviewed-by: igor ! make/netbeans/README ! make/netbeans/common/closed-share-view.ent ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/java-data-no-native.ent ! make/netbeans/common/jtreg-view.ent ! make/netbeans/common/sample-view.ent ! make/netbeans/common/share-view.ent ! make/netbeans/common/unix-view.ent ! make/netbeans/common/windows-view.ent ! make/netbeans/j2se/nbproject/project.xml Changeset: 9b2fc8a11421 Author: darcy Date: 2011-09-20 18:33 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/9b2fc8a11421 6268216: Boolean.getBoolean() throws SecurityException Reviewed-by: mduigou ! src/share/classes/java/lang/Boolean.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Long.java Changeset: 029ba13aa0df Author: dcubed Date: 2011-09-20 19:16 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/029ba13aa0df 7085944: 3/3 FDS: gdb does not find debug symbols for libjsig link Summary: Add support for importing .debuginfo files from HSX. Reviewed-by: phh ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/java/redist/Makefile ! make/java/redist/sajdi/Makefile Changeset: d177eecda07e Author: dholmes Date: 2011-09-20 22:20 -0400 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/d177eecda07e 7012206: ~20 tools tests failing due to -XX:-UsePerfData default in Java SE Embedded Summary: Explicitly enable UsePerfData for the tools that require it to be enabled Reviewed-by: alanb, ohair ! test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java ! test/sun/tools/common/ApplicationSetup.sh ! test/sun/tools/jinfo/Basic.sh ! test/sun/tools/jmap/Basic.sh ! test/sun/tools/jps/jps-Defaults.sh ! test/sun/tools/jps/jps-V_2.sh ! test/sun/tools/jps/jps-Vm_2.sh ! test/sun/tools/jps/jps-Vvm.sh ! test/sun/tools/jps/jps-Vvml.sh ! test/sun/tools/jps/jps-Vvml_2.sh ! test/sun/tools/jps/jps-help.sh ! test/sun/tools/jps/jps-l_1.sh ! test/sun/tools/jps/jps-l_2.sh ! test/sun/tools/jps/jps-lm.sh ! test/sun/tools/jps/jps-m.sh ! test/sun/tools/jps/jps-m_2.sh ! test/sun/tools/jps/jps-q.sh ! test/sun/tools/jps/jps-v_1.sh ! test/sun/tools/jps/jps-vm_1.sh ! test/sun/tools/jstack/Basic.sh ! test/sun/tools/jstat/jstatClassOutput1.sh ! test/sun/tools/jstat/jstatClassloadOutput1.sh ! test/sun/tools/jstat/jstatCompilerOutput1.sh ! test/sun/tools/jstat/jstatFileURITest1.sh ! test/sun/tools/jstat/jstatGcCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcCauseOutput1.sh ! test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcNewOutput1.sh ! test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcOldOutput1.sh ! test/sun/tools/jstat/jstatGcOutput1.sh ! test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh ! test/sun/tools/jstat/jstatHelp.sh ! test/sun/tools/jstat/jstatLineCounts1.sh ! test/sun/tools/jstat/jstatLineCounts2.sh ! test/sun/tools/jstat/jstatLineCounts3.sh ! test/sun/tools/jstat/jstatLineCounts4.sh ! test/sun/tools/jstat/jstatOptions1.sh ! test/sun/tools/jstat/jstatPrintCompilationOutput1.sh ! test/sun/tools/jstat/jstatSnap1.sh ! test/sun/tools/jstat/jstatSnap2.sh ! test/sun/tools/jstat/jstatTimeStamp1.sh ! test/sun/tools/jstatd/jstatdDefaults.sh ! test/sun/tools/jstatd/jstatdExternalRegistry.sh ! test/sun/tools/jstatd/jstatdPort.sh ! test/sun/tools/jstatd/jstatdServerName.sh Changeset: 61a8c602cace Author: michaelm Date: 2011-09-21 14:51 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/61a8c602cace 7079012: test/java/net/NetworkInterface/NetParamsTest.java fails with SocketException getting mac address Reviewed-by: chegar, alanb ! src/solaris/native/java/net/NetworkInterface.c ! test/ProblemList.txt Changeset: e7c2bf7d9d33 Author: michaelm Date: 2011-09-21 14:54 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/e7c2bf7d9d33 Merge Changeset: daf87c7be6a1 Author: weijun Date: 2011-09-22 12:05 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/daf87c7be6a1 7092627: use agentvm mode instead of samevm in regtests Reviewed-by: alanb, dsamersoff ! test/Makefile ! test/com/sun/jdi/sde/MangleStepTest.java ! test/java/util/logging/ParentLoggersTest.java Changeset: 6b6b6ee2afd9 Author: darcy Date: 2011-09-21 23:22 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/6b6b6ee2afd9 7092404: Add Math.nextDown and Double.isFinite Reviewed-by: mduigou ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/StrictMath.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/sun/misc/FpUtils.java ! test/java/lang/Double/ParseHexFloatingPoint.java ! test/java/lang/Math/CeilAndFloorTests.java ! test/java/lang/Math/CubeRootTests.java ! test/java/lang/Math/Expm1Tests.java ! test/java/lang/Math/HyperbolicTests.java ! test/java/lang/Math/HypotTests.java ! test/java/lang/Math/IeeeRecommendedTests.java ! test/java/lang/Math/Log10Tests.java ! test/java/lang/Math/Log1pTests.java ! test/java/lang/Math/Rint.java ! test/java/util/Formatter/Basic-X.java.template ! test/java/util/Formatter/BasicBigDecimal.java ! test/java/util/Formatter/BasicBigInteger.java ! test/java/util/Formatter/BasicBoolean.java ! test/java/util/Formatter/BasicBooleanObject.java ! test/java/util/Formatter/BasicByte.java ! test/java/util/Formatter/BasicByteObject.java ! test/java/util/Formatter/BasicChar.java ! test/java/util/Formatter/BasicCharObject.java ! test/java/util/Formatter/BasicDateTime.java ! test/java/util/Formatter/BasicDouble.java ! test/java/util/Formatter/BasicDoubleObject.java ! test/java/util/Formatter/BasicFloat.java ! test/java/util/Formatter/BasicFloatObject.java ! test/java/util/Formatter/BasicInt.java ! test/java/util/Formatter/BasicIntObject.java ! test/java/util/Formatter/BasicLong.java ! test/java/util/Formatter/BasicLongObject.java ! test/java/util/Formatter/BasicShort.java ! test/java/util/Formatter/BasicShortObject.java Changeset: 8dab38c07b6b Author: dl Date: 2011-09-23 14:24 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/8dab38c07b6b 7091003: ScheduledExecutorService never executes Runnable with corePoolSize of zero Reviewed-by: dholmes, chegar ! src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java ! src/share/classes/java/util/concurrent/ThreadPoolExecutor.java + test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java Changeset: 651a7afae763 Author: lana Date: 2011-09-23 23:29 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/651a7afae763 Merge Changeset: 2116952e4459 Author: weijun Date: 2011-09-26 17:13 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/2116952e4459 7094842: test/javax/security/auth/Subject/{Synch.java,Synch2.java,Synch3.java} loop forever in agentvm mode Reviewed-by: alanb ! test/javax/security/auth/Subject/Synch.java ! test/javax/security/auth/Subject/Synch2.java ! test/javax/security/auth/Subject/Synch3.java Changeset: 8876d1dec4d7 Author: chegar Date: 2011-09-26 15:04 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/8876d1dec4d7 7094141: test/sun/misc/JarIndex/metaInfFilenames/Basic.java no longer compiles Reviewed-by: alanb ! test/sun/misc/JarIndex/metaInfFilenames/Basic.java Changeset: 1c825eac6c04 Author: lana Date: 2011-09-26 14:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/1c825eac6c04 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java Changeset: f38b39ed9ed0 Author: lana Date: 2011-10-03 18:26 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f38b39ed9ed0 Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: 3b59f4bc8046 Author: never Date: 2011-09-07 21:05 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/3b59f4bc8046 7082631: JSR 292: need profiling support in GWTs Summary: add CountingMethodHandle Reviewed-by: twisti, jrose ! src/share/classes/java/lang/invoke/AdapterMethodHandle.java + src/share/classes/java/lang/invoke/CountingMethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandleNatives.java Changeset: 7b9a0c75f5d9 Author: jcoomes Date: 2011-09-30 17:20 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/7b9a0c75f5d9 Merge Changeset: 1c023bcd0c5a Author: jcoomes Date: 2011-10-04 12:39 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/1c023bcd0c5a Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c Changeset: f1ec21b81421 Author: katleman Date: 2011-10-06 14:01 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f1ec21b81421 Added tag jdk8-b08 for changeset 1c023bcd0c5a ! .hgtags Changeset: 7539cc99befe Author: katleman Date: 2011-10-13 10:35 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/7539cc99befe Added tag jdk8-b09 for changeset f1ec21b81421 ! .hgtags Changeset: 58190ab77d2e Author: lana Date: 2011-10-12 12:25 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/58190ab77d2e Merge Changeset: 7f1aca641910 Author: chegar Date: 2011-09-26 11:48 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/7f1aca641910 7084030: DatagramSocket.getLocalAddress inconsistent on XP/2003 when IPv6 enabled and socket is connected Summary: Use family of connected IP address to retrieve desired local address of the datagram socket Reviewed-by: chegar Contributed-by: kurchi.subhra.hazra at oracle.com ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c + test/java/net/DatagramSocket/ChangingAddress.java Changeset: 62e1389fdb0a Author: mullan Date: 2011-09-26 17:20 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/62e1389fdb0a 7088502: Security libraries don't build with javac -Werror Summary: Changes to files in src/share/classes/com/sun/org/apache/xml/internal/security and its subpackages to remove warnings Reviewed-by: mullan Contributed-by: kurchi.subhra.hazra at oracle.com ! make/com/sun/org/apache/xml/Makefile ! src/share/classes/com/sun/org/apache/xml/internal/security/Init.java ! src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java ! src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/MessageDigestAlgorithm.java ! src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/CanonicalizerSpi.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/helper/AttrCompare.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315Excl.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java ! src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/UtfHelpper.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AgreementMethod.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionMethod.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperties.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperty.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/Reference.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/ReferenceList.java ! src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/KeyInfo.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolverSpi.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/RetrievalMethodResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolverSpi.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/KeyStoreResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/SingleCertificateResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/signature/Manifest.java ! src/share/classes/com/sun/org/apache/xml/internal/security/signature/Reference.java ! src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInput.java ! src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInputDebugger.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transform.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformSpi.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/FuncHere.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath2Filter.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXSLT.java ! src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathAPIHolder.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathFuncHereAPI.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementProxy.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/HelperNodeList.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncBufferedOutputStream.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverSpi.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java Changeset: 79582fcc8329 Author: weijun Date: 2011-09-28 14:21 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/79582fcc8329 7089889: Krb5LoginModule.login() throws an exception if used without a keytab Reviewed-by: xuelei, valeriep ! src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! src/share/classes/sun/security/krb5/KrbAsReqBuilder.java + test/sun/security/krb5/auto/NoInitNoKeytab.java Changeset: 9b951304bd0a Author: weijun Date: 2011-09-28 14:21 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/9b951304bd0a 7077640: gss wrap for cfx doesn't handle rrc != 0 Reviewed-by: valeriep ! src/share/classes/sun/security/jgss/krb5/MessageToken_v2.java ! test/sun/security/krb5/auto/Context.java + test/sun/security/krb5/auto/RRC.java Changeset: 8d88e694441c Author: weijun Date: 2011-09-28 14:21 +0800 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/8d88e694441c 7077646: gssapi wrap for CFX per-message tokens always set FLAG_ACCEPTOR_SUBKEY Reviewed-by: valeriep ! src/share/classes/sun/security/jgss/krb5/AcceptSecContextToken.java ! src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java ! src/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/share/classes/sun/security/jgss/krb5/MessageToken_v2.java + test/sun/security/krb5/auto/AcceptorSubKey.java Changeset: 74f5fef1d961 Author: chegar Date: 2011-10-04 13:48 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/74f5fef1d961 6953455: CookieStore.add() cannot handle null URI parameter, contrary to the API Reviewed-by: chegar, mduigou Contributed-by: kurchi.subhra.hazra at oracle.com ! src/share/classes/java/net/InMemoryCookieStore.java + test/java/net/CookieHandler/NullUriCookieTest.java Changeset: 24741fe639a8 Author: chegar Date: 2011-10-04 16:37 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/24741fe639a8 7095949: java/net/URLConnection/RedirectLimit.java and Redirect307Test fail intermittently Reviewed-by: alanb ! test/java/net/URLConnection/Redirect307Test.java ! test/java/net/URLConnection/RedirectLimit.java Changeset: 2bc80ba6f4a4 Author: okutsu Date: 2011-10-05 15:13 +0900 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/2bc80ba6f4a4 7092679: (tz) Java getting wrong timezone/DST info on Solaris 11 6984762: Invalid close of file descriptor '-1' in findZoneinfoFile Reviewed-by: coffeys, ohair, naoto, peytoia ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/java/java/Makefile ! src/solaris/native/java/util/TimeZone_md.c Changeset: ff5e57dc1fb3 Author: chegar Date: 2011-10-06 12:15 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/ff5e57dc1fb3 7090499: missing rawtypes warnings in anonymous inner class Summary: Fix anonymous inner classes with raw types currently being built in the jdk with -Werror Reviewed-by: mcimadamore, alanb ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/security/pkcs11/SunPKCS11.java Changeset: b8a1d30d6c65 Author: naoto Date: 2011-10-06 17:40 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/b8a1d30d6c65 7098394: JDK8 TL repo build fails in src/solaris/native/java/util/TimeZone_md.c Reviewed-by: chegar ! src/solaris/native/java/util/TimeZone_md.c Changeset: 2edaef22de23 Author: vinnie Date: 2011-10-07 14:09 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/2edaef22de23 7094377: Com.sun.jndi.ldap.read.timeout doesn't work with ldaps. Reviewed-by: chegar ! src/share/classes/com/sun/jndi/ldap/Connection.java + test/com/sun/jndi/ldap/LdapsReadTimeoutTest.java Changeset: 1e89a13d9d8f Author: chegar Date: 2011-10-10 10:38 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/1e89a13d9d8f 7098719: -Dsun.net.maxDatagramSockets and Socket constructor does not work correctly with System.gc() Reviewed-by: michaelm ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainSocketImpl.java Changeset: 2a36b8741363 Author: chegar Date: 2011-10-10 15:29 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/2a36b8741363 7098755: test/sun/misc/JarIndex/metaInfFilenames/Basic.java should use supported compiler interface Reviewed-by: mcimadamore ! test/sun/misc/JarIndex/metaInfFilenames/Basic.java Changeset: dd55467dd1f2 Author: ngmr Date: 2011-10-10 14:50 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/dd55467dd1f2 7099119: Remove unused dlinfo local variable in launcher code Reviewed-by: ohair, chegar, ngmr Contributed-by: Steve Poole ! src/solaris/bin/java_md.c Changeset: 5f336e0d4d97 Author: ngmr Date: 2011-10-10 16:13 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/5f336e0d4d97 Merge Changeset: 5bfe2de1157b Author: chegar Date: 2011-10-11 12:06 +0100 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/5bfe2de1157b 7099488: TwoStacksPlainSocketImpl should invoke super.create(stream), typo in fix for 7098719 Reviewed-by: coffeys ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainSocketImpl.java Changeset: ffa762153af4 Author: xuelei Date: 2011-09-28 15:10 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/ffa762153af4 7092375: Security Libraries don't build with javac -Werror Summary: Changes to security related java and make files to remove warnings Reviewed-by: xuelei Contributed-by: kurchi.subhra.hazra at oracle.com ! make/java/security/Makefile ! make/javax/Makefile ! make/javax/others/Makefile + make/javax/security/Makefile ! make/org/ietf/jgss/Makefile ! make/sun/security/other/Makefile ! src/share/classes/java/security/Signature.java ! src/share/classes/javax/security/auth/PrivateCredentialPermission.java ! src/share/classes/javax/security/auth/Subject.java ! src/share/classes/javax/security/auth/SubjectDomainCombiner.java ! src/share/classes/javax/security/auth/kerberos/DelegationPermission.java ! src/share/classes/javax/security/auth/kerberos/ServicePermission.java ! src/share/classes/javax/security/auth/login/LoginContext.java ! src/share/classes/javax/security/auth/x500/X500Principal.java ! src/share/classes/javax/security/cert/CertificateEncodingException.java ! src/share/classes/javax/security/cert/CertificateException.java ! src/share/classes/javax/security/cert/CertificateExpiredException.java ! src/share/classes/javax/security/cert/CertificateNotYetValidException.java ! src/share/classes/javax/security/cert/CertificateParsingException.java ! src/share/classes/javax/security/cert/X509Certificate.java ! src/share/classes/javax/security/sasl/Sasl.java ! src/share/classes/javax/smartcardio/TerminalFactory.java ! src/share/classes/sun/security/ec/ECPublicKeyImpl.java ! src/share/classes/sun/security/validator/PKIXValidator.java ! src/share/classes/sun/security/validator/SimpleValidator.java ! src/share/classes/sun/security/x509/X509CertImpl.java Changeset: 829c3a8d23fa Author: naoto Date: 2011-10-12 12:12 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/829c3a8d23fa 7027061: Testcase failure: java/util/Locale/Bug6989440.java - java.util.ConcurrentModificationException Reviewed-by: dholmes, chegar ! src/share/classes/sun/util/LocaleServiceProviderPool.java ! test/java/util/Locale/Bug6989440.java Changeset: eac5d48a6c8e Author: lana Date: 2011-10-12 12:26 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/eac5d48a6c8e Merge Changeset: 4788745572ef Author: lana Date: 2011-10-17 19:06 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/4788745572ef Merge Changeset: 7ab0d613cd1a Author: katleman Date: 2011-10-20 10:32 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/7ab0d613cd1a Added tag jdk8-b10 for changeset 4788745572ef ! .hgtags Changeset: 845e525caa1e Author: lana Date: 2011-10-26 18:00 -0700 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/845e525caa1e Merge - src/share/classes/java/util/XMLUtils.java - src/share/classes/sun/tools/jar/JarImageSource.java - src/share/native/sun/awt/libpng/pnggccrd.c - src/share/native/sun/awt/libpng/pngvcrd.c From neil.richards at ngmr.net Thu Oct 27 03:57:20 2011 From: neil.richards at ngmr.net (Neil Richards) Date: Thu, 27 Oct 2011 11:57:20 +0100 Subject: jcheck conflict in jdk8/tl/jdk and awt repos: same CR # 7100054 used in two different changesets (one in tl, the other in awt forest) In-Reply-To: <4EA690BF.4000605@oracle.com> References: <4EA60104.1090008@oracle.com> <4EA690BF.4000605@oracle.com> Message-ID: <1319713040.14435.7.camel@chalkhill> On Tue, 2011-10-25 at 11:34 +0100, Alan Bateman wrote: > On 25/10/2011 01:21, Lana Steuck wrote: > > To: TL and Awt teams > > What: we have a jcheck conflict in jdk8/tl/jdk and jdk8/awt/jdk > > repos: > > same Bugid # 7100054 used in two different changesets (one in > > tl/jdk, the other in awt/jdk repo) > > > > http://hg.openjdk.java.net/jdk8/awt/jdk/rev/f218e6bdf1e8 > > http://hg.openjdk.java.net/jdk8/tl/jdk/rev/c3da0672a882 > > > > neil.richards at ngmr.net > > 7100054: (porting) Native code should include fcntl.h and unistd.h > > rather than sys/fcntl.h and sys/unistd.h > > Summary: Use POSIX defined includes for unistd.h and fcntl.h > I think I may be partly to blame here. Neil did ask whether he needed > a separate CR for the AWT change and I told him ([1]) that one was > sufficient. I didn't realize he was thinking of splitting the changes > though as there wasn't any real need to do this for this. > > -Alan > > [1] > http://mail.openjdk.java.net/pipermail/core-libs-dev/2011-October/007926.html > I'm sorry for the confusion here. The review of the AWT part of the change went down a different path (onto a different mailing list) to the core-libs part, and as AWT has its own component repository, it seemed to make most sense to me to commit the core-libs bit to the core-libs component repo, and the AWT bit to the AWT repo. Hence why I asked about whether I needed one bug id or two. I obviously didn't make the correct inference from Alan's reply (that I should commit all the change into one repo). I'm sorry this caused a problem. Please let me know what I can do in helping to rectify things. Thanks, Neil -- Unless stated above: IBM email: neil_richards at uk.ibm.com IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU From anthony.petrov at oracle.com Thu Oct 27 07:13:01 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Thu, 27 Oct 2011 18:13:01 +0400 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> <1319666714.3068.7.camel@PhenomX4> Message-ID: <4EA966ED.6000701@oracle.com> Hi all, I agree, fixing the root cause of the issue makes sense. I've just filed a new CR to cover this fix. The XWrapperBase descendants are indeed all generated at build time, so we only need to fix the WrapperGenerator class itself. The patch sent by Federico looks good to me. Thank you very much for another contribution! -- best regards, Anthony On 10/27/11 08:03, Oleg Sukhodolsky wrote: > If you do not see these classes in the repo then they are generated in > build time. > Unfortunately I do not have a repo right now so I can not check this :( > > Oleg. > > On Thu, Oct 27, 2011 at 2:05 AM, Federico Tello Gentile > wrote: >> Here's a patch to use StringBuilder. It also sets an initial size to >> reduce char[] copying when appending. >> >> I ran the generator locally and checked the generated code. >> >> As I don't know if those java files are generated on every build or if >> they were generated just once with certain input files and committed to >> the repo, I did not go any further. >> >> I hope it is at least a starting point. >> >> El jue, 27-10-2011 a las 00:14 +0400, Oleg Sukhodolsky escribi?: >>> Yep, you are right. It is a WrapperGenerator who should be fixed. >>> And after that we need to regenerate all wrappers (if they are not >>> generated during build). >>> >>> Oleg. >>> >>> On Wed, Oct 26, 2011 at 11:27 PM, Federico wrote: >>>> Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible >>>> getFieldsAsString() implementations, but they are all automatically >>>> generated (which is a relief as there was no human being actually >>>> writing such code). >>>> >>>> They all say at the beginning: >>>> >>>> // This file is an automatically generated file, please do not edit >>>> this file, modify the WrapperGenerator.java file instead ! >>>> >>>> My guess is in file >>>> /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java >>>> >>>> in line 678 >>>> public void writeToString(StructType stp, PrintWriter pw) { >>>> >>>> starts the code generating bit. >>>> >>>> >>>> 2011/10/26 Oleg Sukhodolsky: >>>>> +1 to Artem. >>>>> >>>>> It is better to fix this too. >>>>> >>>>> Oleg. >>>>> >>>>> On Wed, Oct 26, 2011 at 7:34 PM, Artem Ananiev wrote: >>>>>> >>>>>> On 10/26/2011 7:26 PM, Anthony Petrov wrote: >>>>>>> >>>>>>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >>>>>>>> >>>>>>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>>>>>>>> >>>>>>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may notice >>>>>>>>> that in most other places where something is logged, the code usually >>>>>>>>> checks whether logging is enabled for a certain level of logging, e.g.: >>>>>>>>> >>>>>>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>>>>>>>> shapeLog.finer( >>>>>>>>>> "*** INFO: Setting shape: PEER: " + this >>>>>>>>>> + "; WINDOW: " + getWindow() >>>>>>>>>> + "; TARGET: " + target >>>>>>>>>> + "; SHAPE: " + shape); >>>>>>>>>> } >>>>>>>>> >>>>>>>>> So basically, we could simply wrap the line in question into a similar >>>>>>>>> if(){} statement to make sure it gets executed only when the FINEST >>>>>>>>> level of logging is enabled. A similar solution may also apply to >>>>>>>>> another call to enableLog.finer() in the same method just a few lines >>>>>>>>> below. >>>>>>>> >>>>>>>> Although the fix has been already pushed to the workspace, let me >>>>>>>> wonder if, in addition to wrapping the logging calls with the "if ()" >>>>>>>> checks, we should have also rewritten isEventDisabled() to use >>>>>>>> StringBuilder? >>>>>>> >>>>>>> I guess you really mean the XEvent.getFieldsAsString() here [1], right? >>>>>> >>>>>> Yes, exactly. Thanks for this correction. >>>>>> >>>>>>> Possibly. But with Federico's fix this method now only gets called when >>>>>>> logging is enabled, and as such the impact of the issue is limited. >>>>>> >>>>>> I realize that. My point is that we just hide the problem, or make it less >>>>>> visible, or make it appear less frequently - whatever you prefer. However, >>>>>> the problematic code that contains char[] allocation is still in the >>>>>> workspace, and we know how often people use the current code as a pattern >>>>>> for future changes... >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Artem >>>>>> >>>>>>> [1] >>>>>>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >>>>>>> >>>>>>> -- >>>>>>> best regards, >>>>>>> Anthony >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Artem >>>>>>>> >>>>>>>>> Could you make a patch, test it, and post it to this mailing list for >>>>>>>>> review please? >>>>>>>>> >>>>>>>>> -- >>>>>>>>> best regards, >>>>>>>>> Anthony >>>>>>>>> >>>>>>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>>>>>>>> >>>>>>>>>> Hi. >>>>>>>>>> I'm running >>>>>>>>>> >>>>>>>>>> java -version >>>>>>>>>> java version "1.7.0_147-icedtea" >>>>>>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>>>>>>>> (7~b147-2.0~pre6-1ubuntu1) >>>>>>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>>>>>>>> >>>>>>>>>> and profiling a simple Swing application. >>>>>>>>>> >>>>>>>>>> Just by opening a JFrame and moving the mouse over it for 10 secods I >>>>>>>>>> see 600 MB of char[] being created. I can easily create several >>>>>>>>>> terabytes or those if I move the mouse a little longer. Thanks to the >>>>>>>>>> incredibly efficient garbage collector the application performance is >>>>>>>>>> not visibly affected on my 4GB quad core machine. >>>>>>>>>> >>>>>>>>>> The problem is an incredibly inefficient method >>>>>>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the end of >>>>>>>>>> this >>>>>>>>>> message. >>>>>>>>>> >>>>>>>>>> The way it it handling string concatenation forces StringBuilder to >>>>>>>>>> grow >>>>>>>>>> many times and ends up calling Arrays.copyOf a lot of times. >>>>>>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() just for >>>>>>>>>> the sake of logging here: >>>>>>>>>> >>>>>>>>>> sun.awt.X11.XComponentPeer >>>>>>>>>> >>>>>>>>>> protected boolean isEventDisabled(XEvent e) >>>>>>>>>> >>>>>>>>>> enableLog.finest("Component is {1}, checking for disabled event >>>>>>>>>> {0}", e, >>>>>>>>>> (isEnabled()?"enabled":"disable")); >>>>>>>>>> >>>>>>>>>> The worse part is that even if logging is disabled and nothing at >>>>>>>>>> all is >>>>>>>>>> ever logged, the toString is called anyway and all those char[] are >>>>>>>>>> created anyway. >>>>>>>>>> >>>>>>>>>> Here's a NetBeans profiler memory snapshot. >>>>>>>>>> >>>>>>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> This does not happen *at all* if I run the same profiling with this >>>>>>>>>> openjdk version >>>>>>>>>> >>>>>>>>>> java -version >>>>>>>>>> java version "1.6.0_23" >>>>>>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5) >>>>>>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>>>>>>>> >>>>>>>>>> I hope we can do something to improve this situation. I guess all Swing >>>>>>>>>> applications are affected. >>>>>>>>>> >>>>>>>>>> I look forward for any comments. >>>>>>>>>> >>>>>>>>>> Here's the "thing"... >>>>>>>>>> >>>>>>>>>> --------------------------------------------------- >>>>>>>>>> >>>>>>>>>> String getFieldsAsString() { >>>>>>>>>> String ret=""; >>>>>>>>>> >>>>>>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] +", "; >>>>>>>>>> ret += ""+"xany = " + get_xany() +", "; >>>>>>>>>> ret += ""+"xkey = " + get_xkey() +", "; >>>>>>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>>>>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>>>>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>>>>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>>>>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>>>>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>>>>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>>>>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>>>>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>>>>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>>>>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>>>>>>>> ret += ""+"xmap = " + get_xmap() +", "; >>>>>>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>>>>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>>>>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>>>>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>>>>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>>>>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() +", "; >>>>>>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>>>>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() +", "; >>>>>>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>>>>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>>>>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() +", "; >>>>>>>>>> ret += ""+"xselection = " + get_xselection() +", "; >>>>>>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>>>>>>>> ret += ""+"xclient = " + get_xclient() +", "; >>>>>>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>>>>>>>> ret += ""+"xerror = " + get_xerror() +", "; >>>>>>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>>>>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) + " " + >>>>>>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + get_pad(6) + " >>>>>>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>>>>>>>> get_pad(10) >>>>>>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + " " + >>>>>>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + get_pad(17) >>>>>>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + " " + >>>>>>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>>>>>>>> return ret; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>> >>>>> >>>> >> >> -- >> Mi clave p?blica >> http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x157673683A51700A >> From anthony.petrov at oracle.com Mon Oct 31 06:40:52 2011 From: anthony.petrov at oracle.com (anthony.petrov at oracle.com) Date: Mon, 31 Oct 2011 13:40:52 +0000 Subject: hg: jdk8/awt/jdk: 7105529: XAWT: Optimize getFieldsAsString() methods generated by WrapperGenerator Message-ID: <20111031134125.06B97471D7@hg.openjdk.java.net> Changeset: a9246ed011f6 Author: anthony Date: 2011-10-31 17:40 +0300 URL: http://hg.openjdk.java.net/jdk8/awt/jdk/rev/a9246ed011f6 7105529: XAWT: Optimize getFieldsAsString() methods generated by WrapperGenerator Summary: Replace string concatenation with StringBuilder.append() Reviewed-by: anthony, son Contributed-by: Federico Tello Gentile ! src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java From anthony.petrov at oracle.com Mon Oct 31 07:48:17 2011 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 31 Oct 2011 17:48:17 +0300 Subject: sun.awt.X11.XEvent is creating 600 MB of char[] for no good reason In-Reply-To: <4EA966ED.6000701@oracle.com> References: <1319166611.14335.25.camel@PhenomX4> <4EA15EF2.1040900@oracle.com> <4EA82377.2050607@oracle.com> <4EA826BF.6090405@oracle.com> <4EA82878.9020506@oracle.com> <1319666714.3068.7.camel@PhenomX4> <4EA966ED.6000701@oracle.com> Message-ID: <4EAEB531.2030005@oracle.com> Hi Federico, I've just pushed the follow-up fix to the JDK8 repository. As always, porting it to a 7 update release may take some time. Thank you very much for another good contribution! -- best regards, Anthony On 10/27/11 18:13, Anthony Petrov wrote: > Hi all, > > I agree, fixing the root cause of the issue makes sense. I've just filed > a new CR to cover this fix. > > The XWrapperBase descendants are indeed all generated at build time, so > we only need to fix the WrapperGenerator class itself. > > The patch sent by Federico looks good to me. Thank you very much for > another contribution! > > -- > best regards, > Anthony > > On 10/27/11 08:03, Oleg Sukhodolsky wrote: >> If you do not see these classes in the repo then they are generated in >> build time. >> Unfortunately I do not have a repo right now so I can not check this :( >> >> Oleg. >> >> On Thu, Oct 27, 2011 at 2:05 AM, Federico Tello Gentile >> wrote: >>> Here's a patch to use StringBuilder. It also sets an initial size to >>> reduce char[] copying when appending. >>> >>> I ran the generator locally and checked the generated code. >>> >>> As I don't know if those java files are generated on every build or if >>> they were generated just once with certain input files and committed to >>> the repo, I did not go any further. >>> >>> I hope it is at least a starting point. >>> >>> El jue, 27-10-2011 a las 00:14 +0400, Oleg Sukhodolsky escribi?: >>>> Yep, you are right. It is a WrapperGenerator who should be fixed. >>>> And after that we need to regenerate all wrappers (if they are not >>>> generated during build). >>>> >>>> Oleg. >>>> >>>> On Wed, Oct 26, 2011 at 11:27 PM, Federico wrote: >>>>> Almost all sun.awt.X11.XWrapperBase subclasses have similarly horrible >>>>> getFieldsAsString() implementations, but they are all automatically >>>>> generated (which is a relief as there was no human being actually >>>>> writing such code). >>>>> >>>>> They all say at the beginning: >>>>> >>>>> // This file is an automatically generated file, please do not edit >>>>> this file, modify the WrapperGenerator.java file instead ! >>>>> >>>>> My guess is in file >>>>> /openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java >>>>> >>>>> >>>>> in line 678 >>>>> public void writeToString(StructType stp, PrintWriter pw) { >>>>> >>>>> starts the code generating bit. >>>>> >>>>> >>>>> 2011/10/26 Oleg Sukhodolsky: >>>>>> +1 to Artem. >>>>>> >>>>>> It is better to fix this too. >>>>>> >>>>>> Oleg. >>>>>> >>>>>> On Wed, Oct 26, 2011 at 7:34 PM, Artem >>>>>> Ananiev wrote: >>>>>>> >>>>>>> On 10/26/2011 7:26 PM, Anthony Petrov wrote: >>>>>>>> >>>>>>>> On 10/26/2011 7:12 PM, Artem Ananiev wrote: >>>>>>>>> >>>>>>>>> On 10/21/2011 4:00 PM, Anthony Petrov wrote: >>>>>>>>>> >>>>>>>>>> Indeed, this is a nasty issue. Thanks for spotting it. You may >>>>>>>>>> notice >>>>>>>>>> that in most other places where something is logged, the code >>>>>>>>>> usually >>>>>>>>>> checks whether logging is enabled for a certain level of >>>>>>>>>> logging, e.g.: >>>>>>>>>> >>>>>>>>>>> if (shapeLog.isLoggable(PlatformLogger.FINER)) { >>>>>>>>>>> shapeLog.finer( >>>>>>>>>>> "*** INFO: Setting shape: PEER: " + this >>>>>>>>>>> + "; WINDOW: " + getWindow() >>>>>>>>>>> + "; TARGET: " + target >>>>>>>>>>> + "; SHAPE: " + shape); >>>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> So basically, we could simply wrap the line in question into a >>>>>>>>>> similar >>>>>>>>>> if(){} statement to make sure it gets executed only when the >>>>>>>>>> FINEST >>>>>>>>>> level of logging is enabled. A similar solution may also apply to >>>>>>>>>> another call to enableLog.finer() in the same method just a >>>>>>>>>> few lines >>>>>>>>>> below. >>>>>>>>> >>>>>>>>> Although the fix has been already pushed to the workspace, let me >>>>>>>>> wonder if, in addition to wrapping the logging calls with the >>>>>>>>> "if ()" >>>>>>>>> checks, we should have also rewritten isEventDisabled() to use >>>>>>>>> StringBuilder? >>>>>>>> >>>>>>>> I guess you really mean the XEvent.getFieldsAsString() here [1], >>>>>>>> right? >>>>>>> >>>>>>> Yes, exactly. Thanks for this correction. >>>>>>> >>>>>>>> Possibly. But with Federico's fix this method now only gets >>>>>>>> called when >>>>>>>> logging is enabled, and as such the impact of the issue is limited. >>>>>>> >>>>>>> I realize that. My point is that we just hide the problem, or >>>>>>> make it less >>>>>>> visible, or make it appear less frequently - whatever you prefer. >>>>>>> However, >>>>>>> the problematic code that contains char[] allocation is still in the >>>>>>> workspace, and we know how often people use the current code as a >>>>>>> pattern >>>>>>> for future changes... >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Artem >>>>>>> >>>>>>>> [1] >>>>>>>> http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> best regards, >>>>>>>> Anthony >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Artem >>>>>>>>> >>>>>>>>>> Could you make a patch, test it, and post it to this mailing >>>>>>>>>> list for >>>>>>>>>> review please? >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> best regards, >>>>>>>>>> Anthony >>>>>>>>>> >>>>>>>>>> On 10/21/2011 7:10 AM, Federico Tello Gentile wrote: >>>>>>>>>>> >>>>>>>>>>> Hi. >>>>>>>>>>> I'm running >>>>>>>>>>> >>>>>>>>>>> java -version >>>>>>>>>>> java version "1.7.0_147-icedtea" >>>>>>>>>>> OpenJDK Runtime Environment (IcedTea7 2.0pre) >>>>>>>>>>> (7~b147-2.0~pre6-1ubuntu1) >>>>>>>>>>> OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode) >>>>>>>>>>> >>>>>>>>>>> and profiling a simple Swing application. >>>>>>>>>>> >>>>>>>>>>> Just by opening a JFrame and moving the mouse over it for 10 >>>>>>>>>>> secods I >>>>>>>>>>> see 600 MB of char[] being created. I can easily create several >>>>>>>>>>> terabytes or those if I move the mouse a little longer. >>>>>>>>>>> Thanks to the >>>>>>>>>>> incredibly efficient garbage collector the application >>>>>>>>>>> performance is >>>>>>>>>>> not visibly affected on my 4GB quad core machine. >>>>>>>>>>> >>>>>>>>>>> The problem is an incredibly inefficient method >>>>>>>>>>> sun.awt.X11.XEvent.getFieldsAsString() which I pasted at the >>>>>>>>>>> end of >>>>>>>>>>> this >>>>>>>>>>> message. >>>>>>>>>>> >>>>>>>>>>> The way it it handling string concatenation forces >>>>>>>>>>> StringBuilder to >>>>>>>>>>> grow >>>>>>>>>>> many times and ends up calling Arrays.copyOf a lot of times. >>>>>>>>>>> It is being called by the sun.awt.X11.XWrapperBase.toString() >>>>>>>>>>> just for >>>>>>>>>>> the sake of logging here: >>>>>>>>>>> >>>>>>>>>>> sun.awt.X11.XComponentPeer >>>>>>>>>>> >>>>>>>>>>> protected boolean isEventDisabled(XEvent e) >>>>>>>>>>> >>>>>>>>>>> enableLog.finest("Component is {1}, checking for disabled event >>>>>>>>>>> {0}", e, >>>>>>>>>>> (isEnabled()?"enabled":"disable")); >>>>>>>>>>> >>>>>>>>>>> The worse part is that even if logging is disabled and >>>>>>>>>>> nothing at >>>>>>>>>>> all is >>>>>>>>>>> ever logged, the toString is called anyway and all those >>>>>>>>>>> char[] are >>>>>>>>>>> created anyway. >>>>>>>>>>> >>>>>>>>>>> Here's a NetBeans profiler memory snapshot. >>>>>>>>>>> >>>>>>>>>>> http://ubuntuone.com/4xkprEzadUM4sUSdAnWlN5 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> This does not happen *at all* if I run the same profiling >>>>>>>>>>> with this >>>>>>>>>>> openjdk version >>>>>>>>>>> >>>>>>>>>>> java -version >>>>>>>>>>> java version "1.6.0_23" >>>>>>>>>>> OpenJDK Runtime Environment (IcedTea6 1.11pre) >>>>>>>>>>> (6b23~pre10-0ubuntu5) >>>>>>>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) >>>>>>>>>>> >>>>>>>>>>> I hope we can do something to improve this situation. I guess >>>>>>>>>>> all Swing >>>>>>>>>>> applications are affected. >>>>>>>>>>> >>>>>>>>>>> I look forward for any comments. >>>>>>>>>>> >>>>>>>>>>> Here's the "thing"... >>>>>>>>>>> >>>>>>>>>>> --------------------------------------------------- >>>>>>>>>>> >>>>>>>>>>> String getFieldsAsString() { >>>>>>>>>>> String ret=""; >>>>>>>>>>> >>>>>>>>>>> ret += ""+"type = " + XlibWrapper.eventToString[get_type()] >>>>>>>>>>> +", "; >>>>>>>>>>> ret += ""+"xany = " + get_xany() +", "; >>>>>>>>>>> ret += ""+"xkey = " + get_xkey() +", "; >>>>>>>>>>> ret += ""+"xbutton = " + get_xbutton() +", "; >>>>>>>>>>> ret += ""+"xmotion = " + get_xmotion() +", "; >>>>>>>>>>> ret += ""+"xcrossing = " + get_xcrossing() +", "; >>>>>>>>>>> ret += ""+"xfocus = " + get_xfocus() +", "; >>>>>>>>>>> ret += ""+"xexpose = " + get_xexpose() +", "; >>>>>>>>>>> ret += ""+"xgraphicsexpose = " + get_xgraphicsexpose() +", "; >>>>>>>>>>> ret += ""+"xnoexpose = " + get_xnoexpose() +", "; >>>>>>>>>>> ret += ""+"xvisibility = " + get_xvisibility() +", "; >>>>>>>>>>> ret += ""+"xcreatewindow = " + get_xcreatewindow() +", "; >>>>>>>>>>> ret += ""+"xdestroywindow = " + get_xdestroywindow() +", "; >>>>>>>>>>> ret += ""+"xunmap = " + get_xunmap() +", "; >>>>>>>>>>> ret += ""+"xmap = " + get_xmap() +", "; >>>>>>>>>>> ret += ""+"xmaprequest = " + get_xmaprequest() +", "; >>>>>>>>>>> ret += ""+"xreparent = " + get_xreparent() +", "; >>>>>>>>>>> ret += ""+"xconfigure = " + get_xconfigure() +", "; >>>>>>>>>>> ret += ""+"xgravity = " + get_xgravity() +", "; >>>>>>>>>>> ret += ""+"xresizerequest = " + get_xresizerequest() +", "; >>>>>>>>>>> ret += ""+"xconfigurerequest = " + get_xconfigurerequest() >>>>>>>>>>> +", "; >>>>>>>>>>> ret += ""+"xcirculate = " + get_xcirculate() +", "; >>>>>>>>>>> ret += ""+"xcirculaterequest = " + get_xcirculaterequest() >>>>>>>>>>> +", "; >>>>>>>>>>> ret += ""+"xproperty = " + get_xproperty() +", "; >>>>>>>>>>> ret += ""+"xselectionclear = " + get_xselectionclear() +", "; >>>>>>>>>>> ret += ""+"xselectionrequest = " + get_xselectionrequest() >>>>>>>>>>> +", "; >>>>>>>>>>> ret += ""+"xselection = " + get_xselection() +", "; >>>>>>>>>>> ret += ""+"xcolormap = " + get_xcolormap() +", "; >>>>>>>>>>> ret += ""+"xclient = " + get_xclient() +", "; >>>>>>>>>>> ret += ""+"xmapping = " + get_xmapping() +", "; >>>>>>>>>>> ret += ""+"xerror = " + get_xerror() +", "; >>>>>>>>>>> ret += ""+"xkeymap = " + get_xkeymap() +", "; >>>>>>>>>>> ret += "{" + get_pad(0) + " " + get_pad(1) + " " + get_pad(2) >>>>>>>>>>> + " " + >>>>>>>>>>> get_pad(3) + " " + get_pad(4) + " " + get_pad(5) + " " + >>>>>>>>>>> get_pad(6) + " >>>>>>>>>>> " + get_pad(7) + " " + get_pad(8) + " " + get_pad(9) + " " + >>>>>>>>>>> get_pad(10) >>>>>>>>>>> + " " + get_pad(11) + " " + get_pad(12) + " " + get_pad(13) + >>>>>>>>>>> " " + >>>>>>>>>>> get_pad(14) + " " + get_pad(15) + " " + get_pad(16) + " " + >>>>>>>>>>> get_pad(17) >>>>>>>>>>> + " " + get_pad(18) + " " + get_pad(19) + " " + get_pad(20) + >>>>>>>>>>> " " + >>>>>>>>>>> get_pad(21) + " " + get_pad(22) + " " + get_pad(23) + " " + "}"; >>>>>>>>>>> return ret; >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >>> -- >>> Mi clave p?blica >>> http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x157673683A51700A >>> >>> From james.graham at oracle.com Wed Oct 26 20:48:36 2011 From: james.graham at oracle.com (Jim Graham) Date: Wed, 26 Oct 2011 20:48:36 -0700 Subject: [OpenJDK 2D-Dev] What to override and what now In-Reply-To: <1319649751.2666.2.camel@moonlight> References: <4EA826E7.7070801@oracle.com> <1319649751.2666.2.camel@moonlight> Message-ID: <4EA8D494.9060904@oracle.com> It's even messier than that. It essentially specifies exactly how the value is determined and there is not only no need to override it - doing so just opens the door to violating its spec. Both XToolkit and WToolkit have the exact same implementation which complies with the documentation for the method. That implementation should be copied up into this method rather than having it return a fixed value. Arguably, it should have been final, or the spec should have been left open if it was really intended to be overridden and platform-specific. If it is changed to return a static answer then the documentation should be updated to loosen its language so that the indicated behavior is the suggested behavior, but the true behavior is left open to the platform... ...jim On 10/26/2011 10:22 AM, Roman Kennke wrote: > Hi Artem, > >>> While working a bit on cacio, we just found some new nice addition to the Toolkit code, like this one: >>> >>> public boolean areExtraMouseButtonsEnabled() throws HeadlessException { >>> GraphicsEnvironment.checkHeadless(); >>> >>> return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); >>> } >>> >>> Of course, this method is meant to be overridden, so it will end up doing nothing, but things like this may be very difficult to debug at times, and in any case, is definitely are not friendly code. Is there any reason for this smartness? >> >> I completely agree. This code seems to be never called, otherwise it >> would fail into an infinite recursion, it shouldn't be any problems with >> it returning "false". > > Why not make it throw an exception? This way it would be very easy to > find out what is wrong. Returning null, false, -1 etc might make your > code blow up much later and it takes some debugging to figure out what > is wrong. > >>> Why not simply provide a default implementation or just throw an exception or simply make the method abstract? Or maybe I'm missing something? >> >> Making it abstract is not a good idea: I know some rare cases when the >> Toolkit class is extended (e.g. for testing purposes), and adding a new >> abstract method will break such code at compile time. > > Yeah agreed. We are doing this massively in Cacio as you can imagine, > and for us would be nicer to have a compile time error so we know what > to fix. But I see that java.awt.Toolkit is public API and cannot be > changed in a non-compatibel way... > > Cheers, Roman > >