<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi, Laurent.<br>
      Fix looks good.<br>
      <br>
      Thanks!<br>
      <br>
      On 4/2/13 3:35 PM, Laurent Bourg&egrave;s wrote:<br>
    </div>
    <blockquote
cite="mid:CAKjRUT631ZyVJzWWyh7f_unkhzqARcWqX0x80LUceg7kfy+c3g@mail.gmail.com"
      type="cite">Here is the updated patch:<br>
      <a moz-do-not-send="true"
        href="http://jmmc.fr/%7Ebourgesl/share/webrev-8010297.2/">http://jmmc.fr/~bourgesl/share/webrev-8010297.2/</a><br>
      <br>
      Fixed inconsistencies between FINE / FINER log statements:<br>
      - XScrollbarPeer<br>
      - XWindowPeer<br>
      <br>
      Laurent<br>
      <br>
      <div class="gmail_quote">2013/4/2 Anthony Petrov <span dir="ltr">&lt;<a
            moz-do-not-send="true"
            href="mailto:anthony.petrov@oracle.com" target="_blank">anthony.petrov@oracle.com</a>&gt;</span><br>
        <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          1. Sergey: I believe this is for purposes of better formating
          the log output and making it more readable by separating or
          highlighting some sections. I don't think this should be
          changed.<br>
          <br>
          2. Laurent: can you please address this issue and send us a
          new patch?<br>
          <br>
          --<br>
          best regards,<br>
          Anthony
          <div class="HOEnZb">
            <div class="h5"><br>
              <br>
              On 4/1/2013 16:08, Sergey Bylokhov wrote:<br>
              <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">
                <br>
                Hi, Anthony<br>
                Only two comments:<br>
                1 Why we need some special text in the log output like
                "***" and "###"<br>
                2 XScrollbarPeer.java:<br>
                <br>
                + &nbsp; &nbsp; &nbsp; &nbsp;if (log.isLoggable(PlatformLogger.FINEST)) {<br>
                + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;log.finer("KeyEvent on scrollbar: " +
                event);<br>
                + &nbsp; &nbsp; &nbsp; &nbsp;}<br>
                <br>
                <br>
                <br>
                On 4/1/13 12:20 PM, Anthony Petrov wrote:<br>
                <blockquote class="gmail_quote" style="margin:0pt 0pt
                  0pt 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">
                  Awt, Swing, Net engineers,<br>
                  <br>
                  Could anyone review the fix please? For your
                  convenience:<br>
                  <br>
                  Bug: <a moz-do-not-send="true"
                    href="http://bugs.sun.com/view_bug.do?bug_id=8010297"
                    target="_blank">http://bugs.sun.com/view_bug.do?bug_id=8010297</a><br>
                  <br>
                  Fix: <a moz-do-not-send="true"
                    href="http://cr.openjdk.java.net/%7Eanthony/8-55-isLoggable-8010297.0/"
                    target="_blank">http://cr.openjdk.java.net/~anthony/8-55-isLoggable-8010297.0/</a><br>
                  <br>
                  -- <br>
                  best regards,<br>
                  Anthony<br>
                  <br>
                  On 3/22/2013 2:26, Anthony Petrov wrote:<br>
                  <blockquote class="gmail_quote" style="margin:0pt 0pt
                    0pt 0.8ex;border-left:1px solid
                    rgb(204,204,204);padding-left:1ex">
                    Hi Laurent,<br>
                    <br>
                    The fix looks great to me. Thank you very much.<br>
                    <br>
                    We still need at least one review, though. Hopefully
                    net-dev@ and/or swing-dev@ folks might help us out a
                    bit.<br>
                    <br>
                    -- <br>
                    best regards,<br>
                    Anthony<br>
                    <br>
                    On 3/20/2013 15:10, Anthony Petrov wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0pt
                      0pt 0pt 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      Hi Laurent,<br>
                      <br>
                      Thanks for the patch. I've filed a bug at: <a
                        moz-do-not-send="true"
                        href="http://bugs.sun.com/view_bug.do?bug_id=8010297"
                        target="_blank">http://bugs.sun.com/view_bug.do?bug_id=8010297</a><br>
                      (should be available in a day or two)<br>
                      <br>
                      and published a webrev generated from your patch
                      at:<br>
                      <a moz-do-not-send="true"
                        href="http://cr.openjdk.java.net/%7Eanthony/8-55-isLoggable-8010297.0/"
                        target="_blank">http://cr.openjdk.java.net/~anthony/8-55-isLoggable-8010297.0/</a><br>
                      <br>
                      I'm also copying swing-dev@ and net-dev@ because
                      the fix affects those areas too. I myself will
                      review the fix a bit later but am sending it now
                      for other folks to take a look at it.<br>
                      <br>
                      On 3/19/2013 15:29, Laurent Bourg&egrave;s wrote:<br>
                      <blockquote class="gmail_quote" style="margin:0pt
                        0pt 0pt 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">
                        I am sorry I started modifying PlatformLogger
                        and reverted changes to this class as it is
                        another topic to be discussed later: isLoggable
                        performance and waste due to HashMap&lt;Integer,
                        Level&gt; leads to Integer allocations (boxing).<br>
                      </blockquote>
                      <br>
                      I saw your message to core-libs-dev@, so I just
                      dropped all changes to the PlatformLogger from
                      this patch.<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0pt
                        0pt 0pt 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">
                        Finally, I have another question related to the
                        WrapperGenerator class: it generates a lot of
                        empty log statements (XEvent):<br>
                        <br>
                        &nbsp;log &lt;<a moz-do-not-send="true"
href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/awt/X11/XWrapperBase.java#XWrapperBase.0log"
                          target="_blank">http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/awt/X11/XWrapperBase.java#XWrapperBase.0log</a>&gt;.finest
                        &lt;<a moz-do-not-send="true"
href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/logging/Logger.java#Logger.finest%28java.lang.String%29"
                          target="_blank">http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/logging/Logger.java#Logger.finest%28java.lang.String%29</a>&gt;("");
                        <br>
                        <br>
                        Is it really useful to have such statements ? I
                        would keep logs with non empty messages only.<br>
                        <br>
                        See WrapperGenerator:753:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; String s_log =
                        (generateLog?"log.finest(\"\");":"");<br>
                      </blockquote>
                      <br>
                      I believe they're used for log formatting purposes
                      to separate numerous events in a log (e.g. think
                      of mouse-move events - there can be hundreds of
                      them in a raw).<br>
                      <br>
                      <br>
                      Please note that the hg export format is not that
                      useful unless you're assigned an OpenJDK id
                      already (please see Dalibor's message for details)
                      because I can't import it directly. So for the
                      time being you could send just raw patches (i.e.
                      the output of hg diff only - and there's no need
                      to commit your changes in this case). Also, please
                      note that the mailing lists strip attachments. The
                      reason I got it is because I was listed in To: of
                      your message. So when sending patches you can:<br>
                      1) post them inline, or<br>
                      2) attach them and add a person to To: of your
                      message, or<br>
                      3) upload them somewhere on the web.<br>
                      However, it would be best if you could generate a
                      webrev for your changes and upload it somewhere.
                      Currently this is the standard format for
                      reviewing fixes in OpenJDK.<br>
                      <br>
                      -- <br>
                      best regards,<br>
                      Anthony<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0pt
                        0pt 0pt 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">
                        <br>
                        Regards,<br>
                        Laurent<br>
                        <br>
                        <br>
                        <br>
                        2013/3/19 Laurent Bourg&egrave;s &lt;<a
                          moz-do-not-send="true"
                          href="mailto:bourges.laurent@gmail.com"
                          target="_blank">bourges.laurent@gmail.com</a>
                        &lt;mailto:<a moz-do-not-send="true"
                          href="mailto:bourges.laurent@gmail.com"
                          target="_blank">bourges.laurent@gmail.com</a>&gt;&gt;<br>
                        <br>
                        &nbsp; &nbsp; Hi antony,<br>
                        <br>
                        &nbsp; &nbsp; FYI I started reviewing and fixing all
                        PlatformLogger use cases (not<br>
                        &nbsp; &nbsp; too many as I thought first) mainly used by
                        awt / swing projects to<br>
                        &nbsp; &nbsp; provide you a patch on latest JDK8 source
                        code:<br>
                        <br>
                        &nbsp; &nbsp; I am adding the log level check when it is
                        missing:<br>
                        &nbsp; &nbsp; if (...log.isLoggable(PlatformLogger.xxx)) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; log...<br>
                        &nbsp; &nbsp; }<br>
                        <br>
                        &nbsp; &nbsp; I will not change the String + operations to
                        use the message format<br>
                        &nbsp; &nbsp; syntax in this patch.<br>
                        <br>
                        &nbsp; &nbsp; Do you accept such patch / proposed
                        contribution ?<br>
                        <br>
                        &nbsp; &nbsp; Regards,<br>
                        &nbsp; &nbsp; Laurent<br>
                        <br>
                        <br>
                        &nbsp; &nbsp; 2013/3/18 Laurent Bourg&egrave;s &lt;<a
                          moz-do-not-send="true"
                          href="mailto:bourges.laurent@gmail.com"
                          target="_blank">bourges.laurent@gmail.com</a><br>
                        &nbsp; &nbsp; &lt;mailto:<a moz-do-not-send="true"
                          href="mailto:bourges.laurent@gmail.com"
                          target="_blank">bourges.laurent@gmail.com</a>&gt;&gt;<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; Hi antony,<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; 2 different things:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; 1/ PlatformLogger was patched (doLog
                        method) to avoid string<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; operations (message formatting) for
                        disabled logs (patch<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; submiited on JDK8 and JDK7u):<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; <a moz-do-not-send="true"
href="http://mail.openjdk.java.net/pipermail/jdk7u-dev/2012-April/002751.html"
                          target="_blank">http://mail.openjdk.java.net/pipermail/jdk7u-dev/2012-April/002751.html</a>
                        <br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; 2/ I looked 2 hours ago on JDK7u AND
                        JDK8 source codes and both<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; still have:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; - log statements WITHOUT log level check
                        : if<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; (log.isLoggable(PlatformLogger.FINE))
                        log.fine(...);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; - string operations (+) in log calls
                        that could be improved<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; using the message format syntax (String
                        + args): for example,<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; avoid using PlatformLogger.fine(String +
                        ...) in favor of using<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; PlatformLogger.fine(String msg,
                        Object... params)<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; I reported in my previous mail several
                        cases where the<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; isLoggable() call is missing and leads
                        to useless String<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; operations but also method calls
                        (Component.paramString() for<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; example).<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; Finally, I also provided other possible
                        cases (using grep);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; maybe there is a better alternative to
                        find all occurences of<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; String operations in log calls.<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; Regards,<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; Laurent<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; 2013/3/18 Anthony Petrov &lt;<a
                          moz-do-not-send="true"
                          href="mailto:anthony.petrov@oracle.com"
                          target="_blank">anthony.petrov@oracle.com</a><br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &lt;mailto:<a moz-do-not-send="true"
                          href="mailto:anthony.petrov@oracle.com"
                          target="_blank">anthony.petrov@oracle.com</a>&gt;&gt;<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Hi Laurent,<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Normally we fix an issue in JDK 8
                        first, and then back-port<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the fix to a 7u release. You're
                        saying that in JDK 8 the<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; problem isn't reproducible anymore.
                        Can you please<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; investigate (using the Mercurial
                        history log) what exact fix<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resolved it in JDK 8?<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; best regards,<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Anthony<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; On 03/18/13 15:09, Laurent Bourg&egrave;s
                        wrote:<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dear all,<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; I run recently netbeans profiler
                        on my swing application<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Aspro2:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a moz-do-not-send="true"
                          href="http://www.jmmc.fr/aspro"
                          target="_blank">http://www.jmmc.fr/aspro</a>)
                        under linux x64 platform and I<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; figured out<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; that a lot of char[] instances
                        are coming from String +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; operator called<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; by sun.awt.X11 code.<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; I looked at PlatformLogger
                        source code but found not way<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to disable it<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; completely: maybe an empty
                        logger implementation could<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; be interesting to<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; be used during profiling or
                        normal use (not debugging).<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Apparently JDK8 provides some
                        patchs to avoid String<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; creation when the<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; logger is disabled (level).<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; However, I looked also to the
                        sun.awt code (jdk7u<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repository) to see the<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; origin of the string
                        allocations:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XDecoratedPeer:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public void
                        handleFocusEvent(XEvent xev) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp;
                        &nbsp;focusLog.finer("Received focus event on shell:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " + xfe);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; }<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public boolean
                        requestWindowFocus(long time,<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean timeProvided) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                        &nbsp;focusLog.finest("Real native focused<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window: " +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; realNativeFocusedWindow +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "\nKFM's focused window: " +
                        focusedWindow);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp;
                        &nbsp;focusLog.fine("Requesting focus to " + (this ==<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; toFocus ? "this<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window" : toFocus));<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XBaseWindow:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public void xSetBounds(int
                        x, int y, int width, int<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp;insLog.fine("Setting
                        bounds on " + this + " to<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (" + x + ", " +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y + "), " + width + "x" +
                        height);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *}<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XNetProtocol:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;boolean doStateProtocol() {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp;stateLog.finer("__doStateProtocol()
                        returns " +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; res);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *}<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XSystemTrayPeer:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XSystemTrayPeer(SystemTray
                        target) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp;log.fine(" check if
                        system tray is available.<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selection owner:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " + selection_owner);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *}<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;void
                        addTrayIcon(XTrayIconPeer tiPeer) throws<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AWTException {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp;log.fine(" send
                        SYSTEM_TRAY_REQUEST_DOCK<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message to owner: " +<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selection_owner);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *}<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XFramePeer:<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public void
                        handlePropertyNotify(XEvent xev) {<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                        &nbsp;stateLog.finer("State is the same: " + state);<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; However I only give here few
                        cases but certainly others<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; are still<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; present in the source code;
                        maybe findbugs or netbeans<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; warnings could<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; help you finding all of them.<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; I advocate the amount of waste
                        (GC) is not very<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; important but String<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; conversion are also calling
                        several toString() methods<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; that can be<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; costly (event, Frame, window
                        ...)<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Finally, I ran few grep commands
                        on the sun.awt.X11 code<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (jdk7u) and you<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; can look at them to see all
                        string + operations related<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to log statements.<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PS: I may help fixing the source
                        code but I have no idea<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; how to<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collaborate (provide a patch ?)<br>
                        <br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Regards,<br>
                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Laurent Bourg&egrave;s<br>
                        <br>
                        <br>
                        <br>
                        <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                </blockquote>
                <br>
                <br>
                -- <br>
                Best regards, Sergey. <br>
              </blockquote>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Best regards, Sergey. </pre>
  </body>
</html>