From bradford.wetmore at oracle.com Fri Aug 1 00:39:00 2014 From: bradford.wetmore at oracle.com (Bradford Wetmore) Date: Thu, 31 Jul 2014 17:39:00 -0700 Subject: RFR: 8042982: Unexpected RuntimeExceptions being thrown by SSLEngine In-Reply-To: <53D2FBB3.8000609@oracle.com> References: <53CE692B.9090802@oracle.com> <53D2FBB3.8000609@oracle.com> Message-ID: <53DAE1A4.1040403@oracle.com> Rob, Looks ok to me too. There are probably other places with RTE's we could fix, but this will solve the immediate problem. Two comments to consider: 1. Use a Multi-catch exception. JDK7+. 2. DHCrypt throws IOException. ECDHCrypt throws SSLException (which is an IOException). Since DHCrypt/ECDHCrypt are essentially the same kind of class, maybe update DHCrypt to throw the same? Brad On 7/25/2014 5:52 PM, Xuelei Fan wrote: > Looks fine to me. > > Thanks, > Xuelei > > On 7/22/2014 9:37 PM, Rob McKenna wrote: >> Hi folks, >> >> A simple change to use SSLHandshakeException instead of RuntimeException >> in getAgreedSecret in DHCrypt and ECDHCrypt. This will prevent these >> RuntimeExceptions from propagating to the application and allow >> application programmers to handle them as SSLHandshakeExceptions. >> >> http://cr.openjdk.java.net/~robm/8042982/webrev.01/ >> >> -Rob >> > From zaiyao.liu at oracle.com Fri Aug 1 03:10:01 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Fri, 01 Aug 2014 11:10:01 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53D5F8AD.2060804@oracle.com> References: <53D5F8AD.2060804@oracle.com> Message-ID: <53DB0509.3000109@oracle.com> May I request you to review 1 new test to be added for messageDigest with DigestIOStream. New test are added to address following: - Test DigestInputStream and DigestOutputStream digest function when digest set on and off - Test DigestInputStream and DigestOutputStream digest function when Swap the message digest engines between DigestIn/OutputStream - Test DigestInputStream and DigestOutputStream digest function when use same message digest object. JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050370 Webrev: http://cr.openjdk.java.net/~rhalade/8050370/webrev.00/ Thanks, Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Fri Aug 1 04:53:07 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Fri, 1 Aug 2014 12:53:07 +0800 Subject: Code review request, JDK-8052406, SSLv2Hello protocol may be filter out unexpectedly In-Reply-To: <53D9A6C3.6040905@oracle.com> References: <53D8EB6F.20502@oracle.com> <53D993D1.5090708@oracle.com> <7449D11F-B7F3-40AE-A088-9794C73F37AC@oracle.com> <53D9A6C3.6040905@oracle.com> Message-ID: On Jul 31, 2014, at 10:15, Xuelei Fan wrote: >> The server side now only enables TLS_RSA_WITH_AES_128_CBC_SHA256. If other protocols are enabled, Oh, typo. I meant to ask: "If other cipher suites are enabled, what will be the difference?" --Max >> what will be the difference? You mean TLS 1.0 and 1.1 has built-in support for SSLv2Hello but TLS 1.2 does not? >> > Protocols other then TLS v1.2 and SSLv2Hello would be filtered out, > i.e., cannot be negotiated as there is no suitable cipher suite for > those protocols ("TLS_RSA_WITH_AES_128_CBC_SHA256" only applies to TLS 1.2). From xuelei.fan at oracle.com Fri Aug 1 08:27:52 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Fri, 01 Aug 2014 16:27:52 +0800 Subject: Code review request, JDK-8052406, SSLv2Hello protocol may be filter out unexpectedly In-Reply-To: References: <53D8EB6F.20502@oracle.com> <53D993D1.5090708@oracle.com> <7449D11F-B7F3-40AE-A088-9794C73F37AC@oracle.com> <53D9A6C3.6040905@oracle.com> Message-ID: <53DB4F88.10705@oracle.com> On 8/1/2014 12:53 PM, Wang Weijun wrote: > > On Jul 31, 2014, at 10:15, Xuelei Fan wrote: > >>> The server side now only enables TLS_RSA_WITH_AES_128_CBC_SHA256. If other protocols are enabled, > > Oh, typo. I meant to ask: "If other cipher suites are enabled, what will be the difference?" > If the enabled cipher suites are supported by other protocols, other protocols would be enabled accordingly (for example, if enabled TLS_RSA_WITH_AES_128_CBC_SHA, TLS v1.0 and TLS v1.1 would also be available), and SSLv2Hello are also enabled as the need to accept SSL v2 ClientHello message. Thanks, Xuelei > --Max > >>> what will be the difference? You mean TLS 1.0 and 1.1 has built-in support for SSLv2Hello but TLS 1.2 does not? >>> >> Protocols other then TLS v1.2 and SSLv2Hello would be filtered out, >> i.e., cannot be negotiated as there is no suitable cipher suite for >> those protocols ("TLS_RSA_WITH_AES_128_CBC_SHA256" only applies to TLS 1.2). > From weijun.wang at oracle.com Fri Aug 1 08:52:34 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Fri, 1 Aug 2014 16:52:34 +0800 Subject: Code review request, JDK-8052406, SSLv2Hello protocol may be filter out unexpectedly In-Reply-To: <53DB4F88.10705@oracle.com> References: <53D8EB6F.20502@oracle.com> <53D993D1.5090708@oracle.com> <7449D11F-B7F3-40AE-A088-9794C73F37AC@oracle.com> <53D9A6C3.6040905@oracle.com> <53DB4F88.10705@oracle.com> Message-ID: <0D57F5F4-1B25-476D-8ECD-F5DB4D5D0AD5@oracle.com> On Aug 1, 2014, at 16:27, Xuelei Fan wrote: > On 8/1/2014 12:53 PM, Wang Weijun wrote: >> >> On Jul 31, 2014, at 10:15, Xuelei Fan wrote: >> >>>> The server side now only enables TLS_RSA_WITH_AES_128_CBC_SHA256. If other protocols are enabled, >> >> Oh, typo. I meant to ask: "If other cipher suites are enabled, what will be the difference?" >> > If the enabled cipher suites are supported by other protocols, other > protocols would be enabled accordingly (for example, if enabled > TLS_RSA_WITH_AES_128_CBC_SHA, TLS v1.0 and TLS v1.1 would also be > available), and SSLv2Hello are also enabled as the need to accept SSL v2 > ClientHello message. I see. No other question. Change is fine. Thanks Max From fweimer at redhat.com Fri Aug 1 10:06:38 2014 From: fweimer at redhat.com (Florian Weimer) Date: Fri, 01 Aug 2014 12:06:38 +0200 Subject: java.security.DigestInputStream does not implement skip(long) Message-ID: <53DB66AE.6030100@redhat.com> I noticed that the implementation of DigestInputStream does not feed skipped-over bytes to the message digest. The specification is silent on this, and I'm not sure if this a specification deficiency or an implementation bug. -- Florian Weimer / Red Hat Product Security From rob.mckenna at oracle.com Fri Aug 1 18:46:16 2014 From: rob.mckenna at oracle.com (Rob McKenna) Date: Fri, 01 Aug 2014 19:46:16 +0100 Subject: RFR: 8042982: Unexpected RuntimeExceptions being thrown by SSLEngine In-Reply-To: <53DAE1A4.1040403@oracle.com> References: <53CE692B.9090802@oracle.com> <53D2FBB3.8000609@oracle.com> <53DAE1A4.1040403@oracle.com> Message-ID: <53DBE078.1040903@oracle.com> Thanks Brad, patch updated, built & tested. -Rob On 01/08/14 01:39, Bradford Wetmore wrote: > Rob, > > Looks ok to me too. There are probably other places with RTE's we > could fix, but this will solve the immediate problem. > > Two comments to consider: > > 1. Use a Multi-catch exception. JDK7+. > > 2. DHCrypt throws IOException. ECDHCrypt throws SSLException (which > is an IOException). Since DHCrypt/ECDHCrypt are essentially the same > kind of class, maybe update DHCrypt to throw the same? > > Brad > > > On 7/25/2014 5:52 PM, Xuelei Fan wrote: >> Looks fine to me. >> >> Thanks, >> Xuelei >> >> On 7/22/2014 9:37 PM, Rob McKenna wrote: >>> Hi folks, >>> >>> A simple change to use SSLHandshakeException instead of >>> RuntimeException >>> in getAgreedSecret in DHCrypt and ECDHCrypt. This will prevent these >>> RuntimeExceptions from propagating to the application and allow >>> application programmers to handle them as SSLHandshakeExceptions. >>> >>> http://cr.openjdk.java.net/~robm/8042982/webrev.01/ >>> >>> -Rob >>> >> From bradford.wetmore at oracle.com Fri Aug 1 18:55:56 2014 From: bradford.wetmore at oracle.com (Bradford Wetmore) Date: Fri, 01 Aug 2014 11:55:56 -0700 Subject: RFR: 8042982: Unexpected RuntimeExceptions being thrown by SSLEngine In-Reply-To: <53DBE078.1040903@oracle.com> References: <53CE692B.9090802@oracle.com> <53D2FBB3.8000609@oracle.com> <53DAE1A4.1040403@oracle.com> <53DBE078.1040903@oracle.com> Message-ID: <53DBE2BC.8070300@oracle.com> BTW, if you feel like it in any backports, the casts to SSLHandshakeException weren't needed. Brad On 8/1/2014 11:46 AM, Rob McKenna wrote: > Thanks Brad, patch updated, built & tested. > > -Rob > > On 01/08/14 01:39, Bradford Wetmore wrote: >> Rob, >> >> Looks ok to me too. There are probably other places with RTE's we >> could fix, but this will solve the immediate problem. >> >> Two comments to consider: >> >> 1. Use a Multi-catch exception. JDK7+. >> >> 2. DHCrypt throws IOException. ECDHCrypt throws SSLException (which >> is an IOException). Since DHCrypt/ECDHCrypt are essentially the same >> kind of class, maybe update DHCrypt to throw the same? >> >> Brad >> >> >> On 7/25/2014 5:52 PM, Xuelei Fan wrote: >>> Looks fine to me. >>> >>> Thanks, >>> Xuelei >>> >>> On 7/22/2014 9:37 PM, Rob McKenna wrote: >>>> Hi folks, >>>> >>>> A simple change to use SSLHandshakeException instead of >>>> RuntimeException >>>> in getAgreedSecret in DHCrypt and ECDHCrypt. This will prevent these >>>> RuntimeExceptions from propagating to the application and allow >>>> application programmers to handle them as SSLHandshakeExceptions. >>>> >>>> http://cr.openjdk.java.net/~robm/8042982/webrev.01/ >>>> >>>> -Rob >>>> >>> > From peter.firmstone at zeus.net.au Sat Aug 2 03:04:36 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Sat, 02 Aug 2014 13:04:36 +1000 Subject: JEP Review Request: Improve Security Manager Performance In-Reply-To: <53CFBB52.802@redhat.com> References: <535A72F0.3050800@oracle.com> <53CF396D.4080208@redhat.com> <53CFA587.5080109@oracle.com> <53CFBB52.802@redhat.com> Message-ID: <1406948676.2194.12.camel@Nokia-N900> No David is right, the code will run with the privileges of it's own ProtectionDomain, so if that PD is not trusted, the code cannot bypass security checks from static initializers. This does not break secure by default. A static initializer can write to static fields, but public or protected static mutable fields are a secuity risk, with or without a privileged call. Because classes are loaded lazily by the jvm, the call stack context is randomised causing confusing and difficult to debug policy file configuration for administrators, often resulting in a relaxation of permissions beyond minimum privilege principles. Making the suggested change actually improves security. Regards, Peter. ----- Original message ----- > On 07/23/2014 07:07 AM, Tom Hawtin wrote: > > On 23/07/2014 05:26, David M. Lloyd wrote: > > > I would suggest that one or more of the following be done to mitigate > > > this problem: > > > > > > ? Always have static initialization blocks be privileged (this does > > > require users to be cognizant of this fact when writing static > > > blocks) > > > > If we were following "secure by default", this would break it. It turns > > out having a static initaliser run with an unprivileged acc highlights > > code that is doing something naughty. > > I thought this mindset might dominate, which is unfortunate.? In > practice, it is far better for code to be predictable, concise, and > clear.? It does not really make any sense to have random security > contexts in place and then call it "secure"; it makes more sense to just > tell people "hey your static initializers are privileged".? It's not > like normal directly invokable methods where the user can pass in > arguments and get return values from code that runs in a privileged > context.? It is very, very unusual for a static initializer to perform > any function which is practically exploitable; they are generally > stateless already, taking no input and producing no output.? I don't > think that it can be shown that the blanket ideology really provides any > measurable, real-world benefit; on the contrary, it causes real, > measurable detriment.? I don't think anyone ever said "Oh, it's a good > thing I got that AccessControlException in my static initializer; now I > know that doing XYZ needed a privileged block". > > Nevertheless, I never actually expected to convince anyone of this - > it's one of those ideas which seems culturally "against the grain", i.e. > the general principle tends to outweigh the practical reality.? Still, I > had to propose it, in order to be right with myself. :-) > > > > ? Allow static initialization blocks to partake in the aforementioned > > > annotation-driven privileged method idea > > > > Together with the last point, this does make the elevated privilege > > contain a wider block of code than is necessary. This is [particularly > > the case with static initialisers and initialisers where the code can > > be spread throughout the class. OTOH, relevant sections of code could > > be split out into small methods. > > Exactly - in this case I would even expect that you could separately > annotate each static init with its privileges.? The important thing > would still be that the compiler can do this without constructing a new > class for each chunk (or even a lambda if it could be avoided). > > > > ? Introduce a new permission checking mechanism which examines only a > > > specific relevant caller's protection domain (perhaps determined by > > > filter expression, possibly using the stack examination scheme that > > > Mandy Chung has been working on) > > > > Immediate caller checking, though has similarities to link-time access > > checking, has a spectacularly unfortunate history. > > That is an observation. :-) > > > > ? Introduce a programmatic "elevation" mechanism that increases the > > > privileges of the currently executing method for the remainder of its > > > execution without requiring a call-in to doPrivileged or > > > instantiation of a privileged action object > > > > Tom > > -- > - DML -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Mon Aug 4 01:34:36 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 4 Aug 2014 09:34:36 +0800 Subject: RFR 8052412: Too many DNS requests for KDC setttings Message-ID: Please review the code change at http://cr.openjdk.java.net/~weijun/8052412/webrev.00 The original code queries DNS server every time the getKDCList() method is called. On the other hand, if the KDC info is written inside a krb5.conf file, it is never re-read (or for each login when the JAAS login config file has Krb5LoginModule refresh on). The re-querying of DNS is a great waste of time. Updated code stores the result in a cache. It's not uncommon that a DNS server could contain stale entries so a removeFromDnsCache() method is called if a KDC is not accessible. When all KDCs for a realm are removed, a new query will be sent. To be consistent with krb5.conf reading, a Krb5LoginModule refresh would reset the cache. Thanks Max From weijun.wang at oracle.com Mon Aug 4 01:48:21 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 4 Aug 2014 09:48:21 +0800 Subject: On 8038089: TLS optional support for Kerberos cipher suites needs to be re-examine In-Reply-To: References: <53A3C4A6.7030606@oracle.com> <780FD2A0-ADA6-4A77-ADBE-7FAA8AF8B866@oracle.com> <53A3D33C.9070009@oracle.com> <60040DD4-F887-45B0-85EE-678637B266CA@oracle.com> <53A3F4D9.4060102@oracle.com> <183BD754-34FB-4351-A25B-65A82830AA7B@oracle.com> <53A3FCFB.4090002@oracle.com> <215A6E73-07CA-44C1-87BB-934F420A666C@oracle.com> <53C3E241.5040606@oracle.com> <53C3F9AC.3040008@oracle.com> <53C75299.3060007@oracle.com> Message-ID: Hi Xuelei Are you OK with the code change? The updated webrev is now at http://cr.openjdk.java.net/~weijun/8038089/webrev.02/ Comparing to the last version. there are some comment changes and emptying refs.allowed. The only major change is that the ServiecLoader now uses system class loader. Thanks Max On Jul 21, 2014, at 16:22, Wang Weijun wrote: > Please review the updated webrev at > > http://cr.openjdk.java.net/~weijun/8038089/webrev.01 > > Some comment changes. Some arguments rearrangement between classes. > > The interface is still in sun.security.ssl. It will be easy to move it to somewhere else later. When module is introduced, we may need to export the interface from java.base to java.security.jgss. > > Thanks > Max > > On Jul 17, 2014, at 12:35, Xuelei Fan wrote: > >> On 7/16/2014 4:41 PM, Wang Weijun wrote: >>> Hi Xuelei >>> >>> A *primitive* version of webrev available at >>> >>> http://cr.openjdk.java.net/~weijun/8038089/webrev.00 >>> >>> Please confirm this is the way you like it. >>> >> I have not read too much about the details of the update. But looks >> like it is in the right way. >> >>> ExternalCipherSuite is the service interface and Krb5CipherSuite implements it. It's a modification of the old Krb5Proxy but I've moved as many as Kerberos-related codes to the implementation side so it has less methods now. >>> >>> Most likely we will define this new interface in a public package. >>> >> If krb5 is the only external implementation of TLS cipher suites, I >> think, we may want to try the best not to define public interface if >> possible. >> >> Thanks, >> Xuelei >> >>> I didn't touch any core SSL classes except for ClientHandshaker and ServerHandShaker. If you think there are other places too closely connected with kerberos, please let me know. >>> >>> Ideally, those >>> >>> case K_KRB5: case K_KRB5_EXPORT: >>> Krb5Helper.doXXX(...): >>> >>> should be something like >>> >>> default: >>> getExternalHelper(keyExchange).doXXX(...) >>> >>> but I guess we won't do that unless we know there will be a second implementation. >>> >>> Thanks >>> Max >>> >>> >>> >>> >>> >>> >> > From xuelei.fan at oracle.com Mon Aug 4 03:14:53 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Mon, 04 Aug 2014 11:14:53 +0800 Subject: RFR 8052412: Too many DNS requests for KDC setttings In-Reply-To: References: Message-ID: <53DEFAAD.7010901@oracle.com> It's not common but the DNS records of KDC may be updated. This update may introduce regression if the DNS record get updated. Is it possible to support cache timeout in order to mitigate the impact? Config.java: ------------ 1207 private static Map> dnsCache = 1208 Collections.synchronizedMap(new HashMap<>()); Better to put the lines above in the beginning of the class. 1218 System.out.println("getKDCFromDNS: " + realm + ", " + list); list -> String.join(" ", list)? Xuelei On 8/4/2014 9:34 AM, Wang Weijun wrote: > Please review the code change at > > http://cr.openjdk.java.net/~weijun/8052412/webrev.00 > > The original code queries DNS server every time the getKDCList() method is called. On the other hand, if the KDC info is written inside a krb5.conf file, it is never re-read (or for each login when the JAAS login config file has Krb5LoginModule refresh on). The re-querying of DNS is a great waste of time. > > Updated code stores the result in a cache. It's not uncommon that a DNS server could contain stale entries so a removeFromDnsCache() method is called if a KDC is not accessible. When all KDCs for a realm are removed, a new query will be sent. To be consistent with krb5.conf reading, a Krb5LoginModule refresh would reset the cache. > > Thanks > Max > From weijun.wang at oracle.com Mon Aug 4 03:25:19 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 4 Aug 2014 11:25:19 +0800 Subject: RFR 8052412: Too many DNS requests for KDC setttings In-Reply-To: <53DEFAAD.7010901@oracle.com> References: <53DEFAAD.7010901@oracle.com> Message-ID: <612532B6-08B6-4F5E-82B6-E6CDFDD8A1EE@oracle.com> On Aug 4, 2014, at 11:14, Xuelei Fan wrote: > It's not common but the DNS records of KDC may be updated. This update > may introduce regression if the DNS record get updated. Is it possible > to support cache timeout in order to mitigate the impact? Are you OK with using the TTL value in the DNS response? Thanks Max From xuelei.fan at oracle.com Mon Aug 4 03:27:43 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Mon, 04 Aug 2014 11:27:43 +0800 Subject: RFR 8052412: Too many DNS requests for KDC setttings In-Reply-To: <612532B6-08B6-4F5E-82B6-E6CDFDD8A1EE@oracle.com> References: <53DEFAAD.7010901@oracle.com> <612532B6-08B6-4F5E-82B6-E6CDFDD8A1EE@oracle.com> Message-ID: <53DEFDAF.2050706@oracle.com> On 8/4/2014 11:25 AM, Wang Weijun wrote: > > On Aug 4, 2014, at 11:14, Xuelei Fan wrote: > >> It's not common but the DNS records of KDC may be updated. This update >> may introduce regression if the DNS record get updated. Is it possible >> to support cache timeout in order to mitigate the impact? > > Are you OK with using the TTL value in the DNS response? > Sound like a good value to me. Xuelei From christos at zoulas.com Mon Aug 4 05:13:19 2014 From: christos at zoulas.com (Christos Zoulas) Date: Mon, 4 Aug 2014 01:13:19 -0400 Subject: RFR 8052412: Too many DNS requests for KDC setttings In-Reply-To: <53DEFDAF.2050706@oracle.com> from Xuelei Fan (Aug 4, 11:27am) Message-ID: <20140804051319.33C7317FDA3@rebar.astron.com> On Aug 4, 11:27am, xuelei.fan at oracle.com (Xuelei Fan) wrote: -- Subject: Re: RFR 8052412: Too many DNS requests for KDC setttings | On 8/4/2014 11:25 AM, Wang Weijun wrote: | > | > On Aug 4, 2014, at 11:14, Xuelei Fan wrote: | > | >> It's not common but the DNS records of KDC may be updated. This update | >> may introduce regression if the DNS record get updated. Is it possible | >> to support cache timeout in order to mitigate the impact? | > | > Are you OK with using the TTL value in the DNS response? | > | Sound like a good value to me. Just for the DNS timeout? How about TTL/2? What does the Unix KDC do? christos From raghu.k.nair at oracle.com Mon Aug 4 07:11:34 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Mon, 04 Aug 2014 12:41:34 +0530 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice Message-ID: <53DF3226.7010601@oracle.com> Hello , Please review the updated tests for doPrivilaged with accomplice. Updated the test to use @compile tag rather than compiling using API. Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ Thanks, Raghu From raghu.k.nair at oracle.com Mon Aug 4 07:21:39 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Mon, 04 Aug 2014 12:51:39 +0530 Subject: Review request for CR 8049233 Need new tests for testing openssl created certificate In-Reply-To: <53D5EBC7.6020102@oracle.com> References: <53D5EBC7.6020102@oracle.com> Message-ID: <53DF3483.5000106@oracle.com> Hello , Please review the tests for openssl generated certificates and CRLS. Changes made : CustomCertificateFactory.java is made thread safe. Here is the new webrev - http://cr.openjdk.java.net/~rhalade/8049233/webrev.01/ Thanks, Raghu On 7/28/2014 11:50 AM, raghu k.nair wrote: > Hello, > Please review the tests for openssl generated certificates and CRLS. > This tests java.security.cert.Certificate.verify() method and > behaviors of the following classes java.security.X509CRL, > java.security.X509CRLSelector, java.security.X509CRLRevocationReason > and java.security.X509Certificate. > > Bug - |https://bugs.openjdk.java.net/browse/JDK-8049233| > webrev- http://cr.openjdk.java.net/~rhalade/8049233/webrev.00/ > > Thanks, > Raghu Nair > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From xuelei.fan at oracle.com Mon Aug 4 08:52:09 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Mon, 04 Aug 2014 16:52:09 +0800 Subject: On 8038089: TLS optional support for Kerberos cipher suites needs to be re-examine In-Reply-To: References: <53A3C4A6.7030606@oracle.com> <780FD2A0-ADA6-4A77-ADBE-7FAA8AF8B866@oracle.com> <53A3D33C.9070009@oracle.com> <60040DD4-F887-45B0-85EE-678637B266CA@oracle.com> <53A3F4D9.4060102@oracle.com> <183BD754-34FB-4351-A25B-65A82830AA7B@oracle.com> <53A3FCFB.4090002@oracle.com> <215A6E73-07CA-44C1-87BB-934F420A666C@oracle.com> <53C3E241.5040606@oracle.com> <53C3F9AC.3040008@oracle.com> <53C75299.3060007@oracle.com> Message-ID: <53DF49B9.1070707@oracle.com> Please give me more time to think about the overall infrastructure. Xuelei On 8/4/2014 9:48 AM, Wang Weijun wrote: > Hi Xuelei > > Are you OK with the code change? The updated webrev is now at > > http://cr.openjdk.java.net/~weijun/8038089/webrev.02/ > > Comparing to the last version. there are some comment changes and emptying refs.allowed. The only major change is that the ServiecLoader now uses system class loader. > > Thanks > Max > > On Jul 21, 2014, at 16:22, Wang Weijun wrote: > >> Please review the updated webrev at >> >> http://cr.openjdk.java.net/~weijun/8038089/webrev.01 >> >> Some comment changes. Some arguments rearrangement between classes. >> >> The interface is still in sun.security.ssl. It will be easy to move it to somewhere else later. When module is introduced, we may need to export the interface from java.base to java.security.jgss. >> >> Thanks >> Max >> >> On Jul 17, 2014, at 12:35, Xuelei Fan wrote: >> >>> On 7/16/2014 4:41 PM, Wang Weijun wrote: >>>> Hi Xuelei >>>> >>>> A *primitive* version of webrev available at >>>> >>>> http://cr.openjdk.java.net/~weijun/8038089/webrev.00 >>>> >>>> Please confirm this is the way you like it. >>>> >>> I have not read too much about the details of the update. But looks >>> like it is in the right way. >>> >>>> ExternalCipherSuite is the service interface and Krb5CipherSuite implements it. It's a modification of the old Krb5Proxy but I've moved as many as Kerberos-related codes to the implementation side so it has less methods now. >>>> >>>> Most likely we will define this new interface in a public package. >>>> >>> If krb5 is the only external implementation of TLS cipher suites, I >>> think, we may want to try the best not to define public interface if >>> possible. >>> >>> Thanks, >>> Xuelei >>> >>>> I didn't touch any core SSL classes except for ClientHandshaker and ServerHandShaker. If you think there are other places too closely connected with kerberos, please let me know. >>>> >>>> Ideally, those >>>> >>>> case K_KRB5: case K_KRB5_EXPORT: >>>> Krb5Helper.doXXX(...): >>>> >>>> should be something like >>>> >>>> default: >>>> getExternalHelper(keyExchange).doXXX(...) >>>> >>>> but I guess we won't do that unless we know there will be a second implementation. >>>> >>>> Thanks >>>> Max >>>> >>>> >>>> >>>> >>>> >>>> >>> >> > From fweimer at redhat.com Mon Aug 4 10:50:29 2014 From: fweimer at redhat.com (Florian Weimer) Date: Mon, 04 Aug 2014 12:50:29 +0200 Subject: [9] RFR: 8007706: X.509 cert extension SAN should support "_" in dNSName In-Reply-To: <53DC4865.2090101@oracle.com> References: <53CE1847.90700@oracle.com> <53CE1F85.1090907@redhat.com> <53DC4865.2090101@oracle.com> Message-ID: <53DF6575.8050600@redhat.com> On 08/02/2014 04:09 AM, Jason Uh wrote: > Hi Florian, > > Thanks for your input. There was some discussion about the issue in the > past on this list: > http://mail.openjdk.java.net/pipermail/security-dev/2013-February/006622.html > Do you disagree with the comments there? I think the intent of RFC 5280 is *not* to allow "_" in dNSName. However, other PKIX implementations (OpenSSL, NSS) do not seem to verify dNSName syntax at all, so it might be necessary to drop the check for interoperability reasons in OpenJDK, even if it makes OpenJDK less compliant with RFC 5280. -- Florian Weimer / Red Hat Product Security From sean.mullan at oracle.com Mon Aug 4 13:58:10 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 04 Aug 2014 09:58:10 -0400 Subject: java.security.DigestInputStream does not implement skip(long) In-Reply-To: <53DB66AE.6030100@redhat.com> References: <53DB66AE.6030100@redhat.com> Message-ID: <53DF9172.1060609@oracle.com> On 08/01/2014 06:06 AM, Florian Weimer wrote: > I noticed that the implementation of DigestInputStream does not feed > skipped-over bytes to the message digest. The specification is silent > on this, and I'm not sure if this a specification deficiency or an > implementation bug. Yes, this is a known issue, see https://bugs.openjdk.java.net/browse/JDK-6587699 --Sean From florian.bruckner at 3kraft.com Mon Aug 4 15:10:01 2014 From: florian.bruckner at 3kraft.com (Florian Bruckner (3kraft)) Date: Mon, 04 Aug 2014 17:10:01 +0200 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> Message-ID: <53DFA249.3000207@3kraft.com> Hey guys, any feedback/comments on this? Just to summarize again: KeychainStore does not load private keys when not called with a passphrase. This is the case in various deployment scenarios (like javaws), as a consequence identity certificates stored in Apple Keychain are not available (i.e. being offered for selection like on Windows). The reason for this is the implementation of KeychainStore, which uses this API to retrieve a PKCS#12 container from apple keychain: https://developer.apple.com/library/mac/documentation/security/Reference/keychainservices/Reference/reference.html#jumpTo_63 The API documentation says the PKCS#12 keystore being generated with this call requires a password. This is either supplied by the caller or the user is prompted (if a flag is set, which is not the case). KeychainStore then goes on to extract the private key from the returned PKCS#12 store and decrypts it with the password. Therefore, the password passed into engineGetKey is actually used to encrypt and decrypt only in the scope of this method. Therefore, the approach is to create a dummy password for this use case. Please consider these patches to fix this issue: For jdk7u-dev: diff -r 35aabd00a534 src/macosx/classes/apple/security/KeychainStore.java --- a/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 02:26:55 2014 +0400 +++ b/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 10:52:44 2014 +0200 @@ -134,7 +134,7 @@ * password to recover it. * * @param alias the alias name - * @param password the password for recovering the key + * @param password the password for recovering the key. This password is not used to access the private key in KeyChain, it is used internally only. * * @return the requested key, or null if the given alias does not exist * or does not identify a key entry. @@ -148,6 +148,16 @@ throws NoSuchAlgorithmException, UnrecoverableKeyException { permissionCheck(); + // An empty password is rejected by MacOS API, no private key data + // is exported. If no password is passed (as is the case when + // this implementation is used as browser keystore in various + // deployment scenarios like webstart, JFX and applets), create + // a dummy password to MacOS API is happy. + if (password == null || password.length ==0) { + // Must not be a char array with only a 0, as this is an empty + // string. Therefore use a single character. + password = new char[]{'A'} + } Object entry = entries.get(alias.toLowerCase()); For jdk8u-dev: diff -r baec3649f6c0 src/macosx/classes/apple/security/KeychainStore.java --- a/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 02:00:52 2014 +0400 +++ b/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 10:54:45 2014 +0200 @@ -140,7 +140,7 @@ * password to recover it. * * @param alias the alias name - * @param password the password for recovering the key + * @param password the password for recovering the key. This password is not used to access the private key in KeyChain, it is used internally only. * * @return the requested key, or null if the given alias does not exist * or does not identify a key entry. @@ -154,7 +154,16 @@ throws NoSuchAlgorithmException, UnrecoverableKeyException { permissionCheck(); - + // An empty password is rejected by MacOS API, no private key data + // is exported. If no password is passed (as is the case when + // this implementation is used as browser keystore in various + // deployment scenarios like webstart, JFX and applets), create + // a dummy password to MacOS API is happy. + if (password == null || password.length ==0) { + // Must not be a char array with only a 0, as this is an empty + // string. Therefore use a single character. + password = new char[]{'A'} + } Object entry = entries.get(alias.toLowerCase()); if (entry == null || !(entry instanceof KeyEntry)) { With best regards, Florian From sean.mullan at oracle.com Mon Aug 4 17:32:57 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 04 Aug 2014 13:32:57 -0400 Subject: [9] request for review 8051972: sun/security/pkcs11/ec/ReadCertificates.java fails intermittently In-Reply-To: References: Message-ID: <53DFC3C9.9060700@oracle.com> Looks good. Please add a noreg label (noreg-self probably). Also, the subcomponent should probably be javax.security:pkcs11 --Sean On 07/29/2014 11:02 AM, Vincent Ryan wrote: > Please review this simple fix to eliminate an intermittent test failure. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8051972 > Webrev: http://cr.openjdk.java.net/~vinnie/8051972/webrev.00/ > > The fix detects if a self-signed cert has inadvertently been selected for an > invalid-signature test and ignores the resulting false positive. > > Thanks. > From jason.uh at oracle.com Tue Aug 5 05:52:36 2014 From: jason.uh at oracle.com (Jason Uh) Date: Mon, 04 Aug 2014 22:52:36 -0700 Subject: [9] RFR: 8007706: X.509 cert extension SAN should support "_" in dNSName In-Reply-To: <53DF6575.8050600@redhat.com> References: <53CE1847.90700@oracle.com> <53CE1F85.1090907@redhat.com> <53DC4865.2090101@oracle.com> <53DF6575.8050600@redhat.com> Message-ID: <53E07124.9090301@oracle.com> Hi Florian, I've reviewed the RFC again and think there might be some misinterpretation. The only part I see about underscores reads: > Implementers should note that the at sign ('@') and underscore ('_') > characters are not supported by the ASN.1 type PrintableString. > These characters often appear in Internet addresses. Such addresses > MUST be encoded using an ASN.1 type that supports them. They are > usually encoded as IA5String in either the emailAddress attribute > within a distinguished name or the rfc822Name field of GeneralName. > Conforming implementations MUST NOT encode strings that include > either the at sign or underscore character as PrintableString. RFC 5280 doesn't allow underscores for *PrintableString*, but DNSName is an *IA5String*, which does support them. Jason On 08/04/2014 03:50 AM, Florian Weimer wrote: > On 08/02/2014 04:09 AM, Jason Uh wrote: >> Hi Florian, >> >> Thanks for your input. There was some discussion about the issue in the >> past on this list: >> http://mail.openjdk.java.net/pipermail/security-dev/2013-February/006622.html >> > >> Do you disagree with the comments there? > > I think the intent of RFC 5280 is *not* to allow "_" in dNSName. > > However, other PKIX implementations (OpenSSL, NSS) do not seem to verify > dNSName syntax at all, so it might be necessary to drop the check for > interoperability reasons in OpenJDK, even if it makes OpenJDK less > compliant with RFC 5280. > From fweimer at redhat.com Tue Aug 5 06:58:39 2014 From: fweimer at redhat.com (Florian Weimer) Date: Tue, 05 Aug 2014 08:58:39 +0200 Subject: [9] RFR: 8007706: X.509 cert extension SAN should support "_" in dNSName In-Reply-To: <53E07124.9090301@oracle.com> References: <53CE1847.90700@oracle.com> <53CE1F85.1090907@redhat.com> <53DC4865.2090101@oracle.com> <53DF6575.8050600@redhat.com> <53E07124.9090301@oracle.com> Message-ID: <53E0809F.8080702@redhat.com> On 08/05/2014 07:52 AM, Jason Uh wrote: > Hi Florian, > > I've reviewed the RFC again and think there might be some > misinterpretation. The only part I see about underscores reads: > >> Implementers should note that the at sign ('@') and underscore ('_') >> characters are not supported by the ASN.1 type PrintableString. >> These characters often appear in Internet addresses. Such addresses >> MUST be encoded using an ASN.1 type that supports them. They are >> usually encoded as IA5String in either the emailAddress attribute >> within a distinguished name or the rfc822Name field of GeneralName. >> Conforming implementations MUST NOT encode strings that include >> either the at sign or underscore character as PrintableString. > > RFC 5280 doesn't allow underscores for *PrintableString*, but DNSName is > an *IA5String*, which does support them. By this argument, the patch is still not correct because it leaves in additional checking incompatible with IA5String. (It is also not clear to me what exactly is permissible in IA5Strings and how codepoints are supposedly mapped to their Unicode counterparts if a national variant of T.50 is used, but that's a different issue.) Relaxing all restrictions would match what other software does. My claim that '_' is not allowed in dNSName is based on these two sentences: When the subjectAltName extension contains a domain name system label, the domain name MUST be stored in the dNSName (an IA5String). The name MUST be in the "preferred name syntax", as specified by Section 3.5 of [RFC1034] and as modified by Section 2.1 of [RFC1123]. Section 3.5 of RFC 1034 and section 2.1 of RFC 1123 deal with host name syntax, and the grammar in RFC 1034 (and RFC 952, which is referenced in RFC 1123) does not permit underscores. -- Florian Weimer / Red Hat Product Security From mala.bankal at oracle.com Tue Aug 5 09:32:27 2014 From: mala.bankal at oracle.com (mala bankal) Date: Tue, 05 Aug 2014 15:02:27 +0530 Subject: Request for review : backport of bug# 8031046 to 7u-dev Message-ID: <53E0A4AB.5020601@oracle.com> HI, Request review for the direct backport of bug# 8031046 to 7u-dev. http://cr.openjdk.java.net/~mbankal/8031046/webrev.00/ JDK9 Changeset : http://hg.openjdk.java.net/jdk9/dev/jdk/rev/ab914c760352 JDK8 Changeset : http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/b32e9aba4888 Regression test is not added since it requires special setup, SQE bug filed for the same : https://bugs.openjdk.java.net/browse/INTJDK-7604925 Thanks. rgds mala From valerie.peng at oracle.com Tue Aug 5 19:00:04 2014 From: valerie.peng at oracle.com (Valerie Peng) Date: Tue, 05 Aug 2014 12:00:04 -0700 Subject: Review request for CR 8044193 Need to add known answer tests for AES cipher In-Reply-To: <53D724DF.6060404@oracle.com> References: <53D607D2.7040809@oracle.com> <53D724DF.6060404@oracle.com> Message-ID: <53E129B4.3070200@oracle.com> The tests look fine. However, can you please update the test policy files with fine-grained permissions for SunJCE provider? Please refer to the current /lib/security/java.policy. Thanks, Valerie On 7/28/2014 9:36 PM, zaiyao liu wrote: > Hello, > Please help to review the tests for AES cipher. > This tests test AES ciphers with different modes and padding > schemes when provider change,are part of tests for bug 8044193(Open part) > Bug - https://bugs.openjdk.java.net/browse/JDK-8044193 > webrev- http://cr.openjdk.java.net/~rhalade/8044193/webrev.00/ > > Thanks > > Kevin Liu From sean.mullan at oracle.com Tue Aug 5 19:47:50 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 05 Aug 2014 15:47:50 -0400 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: <53DFA249.3000207@3kraft.com> References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> <53DFA249.3000207@3kraft.com> Message-ID: <53E134E6.5070707@oracle.com> On 08/04/2014 11:10 AM, Florian Bruckner (3kraft) wrote: > Hey guys, > > any feedback/comments on this? This seems like a reasonable change to me. In order to proceed with accepting your patch, you will first need to sign an OCA. See step 0 of http://openjdk.java.net/contribute/ Thanks, Sean > > Just to summarize again: > > KeychainStore does not load private keys when not called with a > passphrase. This is the case in various deployment scenarios (like > javaws), as a consequence identity certificates stored in Apple Keychain > are not available (i.e. being offered for selection like on Windows). > > The reason for this is the implementation of KeychainStore, which uses > this API to retrieve a PKCS#12 container from apple keychain: > > https://developer.apple.com/library/mac/documentation/security/Reference/keychainservices/Reference/reference.html#jumpTo_63 > > > The API documentation says the PKCS#12 keystore being generated with > this call requires a password. This is either supplied by the caller or > the user is prompted (if a flag is set, which is not the case). > > KeychainStore then goes on to extract the private key from the returned > PKCS#12 store and decrypts it with the password. > > Therefore, the password passed into engineGetKey is actually used to > encrypt and decrypt only in the scope of this method. Therefore, the > approach is to create a dummy password for this use case. > > Please consider these patches to fix this issue: > > For jdk7u-dev: > > diff -r 35aabd00a534 src/macosx/classes/apple/security/KeychainStore.java > --- a/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 > 02:26:55 2014 +0400 > +++ b/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 > 10:52:44 2014 +0200 > @@ -134,7 +134,7 @@ > * password to recover it. > * > * @param alias the alias name > - * @param password the password for recovering the key > + * @param password the password for recovering the key. This > password is not used to access the private key in KeyChain, it is used > internally only. > * > * @return the requested key, or null if the given alias does not > exist > * or does not identify a key entry. > @@ -148,6 +148,16 @@ > throws NoSuchAlgorithmException, UnrecoverableKeyException > { > permissionCheck(); > + // An empty password is rejected by MacOS API, no private key data > + // is exported. If no password is passed (as is the case when > + // this implementation is used as browser keystore in various > + // deployment scenarios like webstart, JFX and applets), create > + // a dummy password to MacOS API is happy. > + if (password == null || password.length ==0) { > + // Must not be a char array with only a 0, as this is an empty > + // string. Therefore use a single character. > + password = new char[]{'A'} > + } > > Object entry = entries.get(alias.toLowerCase()); > > > > For jdk8u-dev: > > diff -r baec3649f6c0 src/macosx/classes/apple/security/KeychainStore.java > --- a/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 > 02:00:52 2014 +0400 > +++ b/src/macosx/classes/apple/security/KeychainStore.java Tue Jul 15 > 10:54:45 2014 +0200 > @@ -140,7 +140,7 @@ > * password to recover it. > * > * @param alias the alias name > - * @param password the password for recovering the key > + * @param password the password for recovering the key. This > password is not used to access the private key in KeyChain, it is used > internally only. > * > * @return the requested key, or null if the given alias does not > exist > * or does not identify a key entry. > @@ -154,7 +154,16 @@ > throws NoSuchAlgorithmException, UnrecoverableKeyException > { > permissionCheck(); > - > + // An empty password is rejected by MacOS API, no private key data > + // is exported. If no password is passed (as is the case when > + // this implementation is used as browser keystore in various > + // deployment scenarios like webstart, JFX and applets), create > + // a dummy password to MacOS API is happy. > + if (password == null || password.length ==0) { > + // Must not be a char array with only a 0, as this is an empty > + // string. Therefore use a single character. > + password = new char[]{'A'} > + } > Object entry = entries.get(alias.toLowerCase()); > > if (entry == null || !(entry instanceof KeyEntry)) { > > > With best regards, > > Florian > From sean.mullan at oracle.com Tue Aug 5 21:24:51 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 05 Aug 2014 17:24:51 -0400 Subject: RFR 6997010: Consolidate java.security files into one file with modifications In-Reply-To: References: <53D26A23.2010806@oracle.com> <902FCDAA-E90B-4677-836C-D294D725FB45@oracle.com> <53D63762.3040200@oracle.com> Message-ID: <53E14BA3.8020408@oracle.com> On 07/28/2014 09:53 AM, Wang Weijun wrote: > Yes, you are right. > > Webrev updated at http://cr.openjdk.java.net/~weijun/6997010/webrev.02. GendataJavaSecurity.gmk and MakeJavaSecurity.java updated. There's an unnecessary indent at line 1 of GendataJavaSecurity.gmk In CheckSecurityProvider.java, ucrypto is in the closed sources, so Security.getProviders() will not return it if you are testing an OpenJDK build. You need to adjust the test to not include this provider if testing an OpenJDK build. --Sean > > Thanks > Max > > On Jul 28, 2014, at 19:43, Erik Joelsson wrote: > >> Hello Max, >> >> Shouldn't the rule for $(GENDATA_JAVA_SECURITY) depend on $(RESTRICTED_PKGS_SRC) so that updates to the pkgs file triggers a rebuild? For that to work, the variable $(RESTRICTED_PKGS_SRC) needs to be empty for the OPENJDK case rather than have a dummy name and MakeJavaSecurity.java needs to handle missing the last argument. >> >> /Erik >> >> On 2014-07-28 03:44, Wang Weijun wrote: >>> Webrev updated at >>> >>> >>> http://cr.openjdk.java.net/~weijun/6997010/webrev.01/ >>> >>> >>> New test CheckSecurityProvider.java, and updates to MakeJavaSecurity.addPackages(). >>> >>> Thanks >>> Max >>> >>> On Jul 25, 2014, at 22:44, Wang Weijun >>> >>> wrote: >>> >>> >>>> On Jul 25, 2014, at 22:30, Sean Mullan >>>> wrote: >>>> >>>> >>>>>> http://cr.openjdk.java.net/~weijun/6997010/webrev.00/ >>>>>> >>>>>> >>>>>> 4. *IMPORTANT*: In order to easily maintain platform-related entries, >>>>>> every line (including the last line) in package.access and >>>>>> package.definition MUST end with ',\' now. A blank line MUST exist >>>>>> after the last line. This avoid ugly lines like >>>>>> >>>>>> #ifndef windows entry1. #endif #ifdef windows entry1.,\ entry2 >>>>>> #endif >>>>>> >>>>> What happens if someone (inevitably) adds a new package to the list and forgets to do either of these? Does it result in a build failure? >>>>> >>>> No build failure, but test/java/security/SecurityManager/CheckPackageAccess.java will fail. >>>> >>>> I can add check in the build tool. >>>> >>>> >>>>> Otherwise looks good, although I think it would be useful to write an additional test to make sure the correct providers are installed and ordered correctly on the different platforms, something similar to the java/lang/SecurityManager/CheckPackageAccess.java test but specific to providers. >>>>> >>>> OK. >>>> >>>> Thanks >>>> Max >>>> >>>> >> > From valerie.peng at oracle.com Tue Aug 5 21:53:09 2014 From: valerie.peng at oracle.com (Valerie Peng) Date: Tue, 05 Aug 2014 14:53:09 -0700 Subject: RFR 8043836: Need new tests for AES cipher In-Reply-To: <53D61087.6030008@oracle.com> References: <53D61087.6030008@oracle.com> Message-ID: <53E15245.2030906@oracle.com> Looks fine to me. Thanks, Valerie On 7/28/2014 1:57 AM, FELIX YANG wrote: > May I request you to review these 6 new tests to be added for AES cipher. > New tests are added to address following: > > - Test AES for different modes and padding schemes > - Test AES encryption with no padding > - same buffer can be used for encrypt and decrypt with AES > > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8043836 > Webrev: http://cr.openjdk.java.net/~rhalade/8043836/webrev.00/ > > Thanks, > From jason.uh at oracle.com Wed Aug 6 00:06:28 2014 From: jason.uh at oracle.com (Jason Uh) Date: Tue, 05 Aug 2014 17:06:28 -0700 Subject: [9] RFR: 8007706: X.509 cert extension SAN should support "_" in dNSName In-Reply-To: <53E0809F.8080702@redhat.com> References: <53CE1847.90700@oracle.com> <53CE1F85.1090907@redhat.com> <53DC4865.2090101@oracle.com> <53DF6575.8050600@redhat.com> <53E07124.9090301@oracle.com> <53E0809F.8080702@redhat.com> Message-ID: <53E17184.3040401@oracle.com> Thanks, Florian. I will withdraw my review request and close this issue. I'll file a separate bug to allow the first character to be a digit, as RFC 1123 relaxed that restriction. Thanks, Jason On 08/04/2014 11:58 PM, Florian Weimer wrote: > On 08/05/2014 07:52 AM, Jason Uh wrote: >> Hi Florian, >> >> I've reviewed the RFC again and think there might be some >> misinterpretation. The only part I see about underscores reads: >> >>> Implementers should note that the at sign ('@') and underscore ('_') >>> characters are not supported by the ASN.1 type PrintableString. >>> These characters often appear in Internet addresses. Such addresses >>> MUST be encoded using an ASN.1 type that supports them. They are >>> usually encoded as IA5String in either the emailAddress attribute >>> within a distinguished name or the rfc822Name field of GeneralName. >>> Conforming implementations MUST NOT encode strings that include >>> either the at sign or underscore character as PrintableString. >> >> RFC 5280 doesn't allow underscores for *PrintableString*, but DNSName is >> an *IA5String*, which does support them. > > By this argument, the patch is still not correct because it leaves in > additional checking incompatible with IA5String. (It is also not clear > to me what exactly is permissible in IA5Strings and how codepoints are > supposedly mapped to their Unicode counterparts if a national variant of > T.50 is used, but that's a different issue.) Relaxing all restrictions > would match what other software does. > > My claim that '_' is not allowed in dNSName is based on these two > sentences: > > When the subjectAltName extension contains a domain name system > label, the domain name MUST be stored in the dNSName (an IA5String). > The name MUST be in the "preferred name syntax", as specified by > Section 3.5 of [RFC1034] and as modified by Section 2.1 of > [RFC1123]. > > Section 3.5 of RFC 1034 and section 2.1 of RFC 1123 deal with host name > syntax, and the grammar in RFC 1034 (and RFC 952, which is referenced in > RFC 1123) does not permit underscores. > From weijun.wang at oracle.com Wed Aug 6 01:23:35 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Wed, 06 Aug 2014 09:23:35 +0800 Subject: Request for review : backport of bug# 8031046 to 7u-dev In-Reply-To: <53E0A4AB.5020601@oracle.com> References: <53E0A4AB.5020601@oracle.com> Message-ID: <53E18397.6090405@oracle.com> Hi Mala Code change looks fine. When you say "Direct backport", is it equivalent to "applying the same patch with no conflict"? :-) Thanks Max On 8/5/2014 17:32, mala bankal wrote: > HI, > > Request review for the direct backport of bug# 8031046 to 7u-dev. > > http://cr.openjdk.java.net/~mbankal/8031046/webrev.00/ > > JDK9 Changeset : > http://hg.openjdk.java.net/jdk9/dev/jdk/rev/ab914c760352 > JDK8 Changeset : > http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/b32e9aba4888 > > Regression test is not added since it requires special setup, SQE bug > filed for the same : > https://bugs.openjdk.java.net/browse/INTJDK-7604925 > > Thanks. > rgds > mala From mala.bankal at oracle.com Wed Aug 6 04:31:41 2014 From: mala.bankal at oracle.com (mala bankal) Date: Wed, 06 Aug 2014 10:01:41 +0530 Subject: Request for review : backport of bug# 8031046 to 7u-dev In-Reply-To: <53E18397.6090405@oracle.com> References: <53E0A4AB.5020601@oracle.com> <53E18397.6090405@oracle.com> Message-ID: <53E1AFAD.9020001@oracle.com> HI Max, Thanks for the review. Yes it means no extra code changes. :) rgds mala On 8/6/2014 6:53 AM, Weijun Wang wrote: > Hi Mala > > Code change looks fine. > > When you say "Direct backport", is it equivalent to "applying the same > patch with no conflict"? :-) > > Thanks > Max > > On 8/5/2014 17:32, mala bankal wrote: >> HI, >> >> Request review for the direct backport of bug# 8031046 to 7u-dev. >> >> http://cr.openjdk.java.net/~mbankal/8031046/webrev.00/ >> >> JDK9 Changeset : >> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/ab914c760352 >> JDK8 Changeset : >> http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/b32e9aba4888 >> >> Regression test is not added since it requires special setup, SQE bug >> filed for the same : >> https://bugs.openjdk.java.net/browse/INTJDK-7604925 >> >> Thanks. >> rgds >> mala From erik.joelsson at oracle.com Wed Aug 6 09:04:51 2014 From: erik.joelsson at oracle.com (Erik Joelsson) Date: Wed, 06 Aug 2014 11:04:51 +0200 Subject: RFR 6997010: Consolidate java.security files into one file with modifications In-Reply-To: <53E14BA3.8020408@oracle.com> References: <53D26A23.2010806@oracle.com> <902FCDAA-E90B-4677-836C-D294D725FB45@oracle.com> <53D63762.3040200@oracle.com> <53E14BA3.8020408@oracle.com> Message-ID: <53E1EFB3.8000004@oracle.com> On 2014-08-05 23:24, Sean Mullan wrote: > On 07/28/2014 09:53 AM, Wang Weijun wrote: >> Yes, you are right. >> >> Webrev updated at >> http://cr.openjdk.java.net/~weijun/6997010/webrev.02. >> GendataJavaSecurity.gmk and MakeJavaSecurity.java updated. > > There's an unnecessary indent at line 1 of GendataJavaSecurity.gmk Speaking of indentation, please also change the ifdef bodies to 2 spaces. /Erik > > In CheckSecurityProvider.java, ucrypto is in the closed sources, so > Security.getProviders() will not return it if you are testing an > OpenJDK build. You need to adjust the test to not include this > provider if testing an OpenJDK build. > > --Sean > >> >> Thanks >> Max >> >> On Jul 28, 2014, at 19:43, Erik Joelsson >> wrote: >> >>> Hello Max, >>> >>> Shouldn't the rule for $(GENDATA_JAVA_SECURITY) depend on >>> $(RESTRICTED_PKGS_SRC) so that updates to the pkgs file triggers a >>> rebuild? For that to work, the variable $(RESTRICTED_PKGS_SRC) needs >>> to be empty for the OPENJDK case rather than have a dummy name and >>> MakeJavaSecurity.java needs to handle missing the last argument. >>> >>> /Erik >>> >>> On 2014-07-28 03:44, Wang Weijun wrote: >>>> Webrev updated at >>>> >>>> >>>> http://cr.openjdk.java.net/~weijun/6997010/webrev.01/ >>>> >>>> >>>> New test CheckSecurityProvider.java, and updates to >>>> MakeJavaSecurity.addPackages(). >>>> >>>> Thanks >>>> Max >>>> >>>> On Jul 25, 2014, at 22:44, Wang Weijun >>>> >>>> wrote: >>>> >>>> >>>>> On Jul 25, 2014, at 22:30, Sean Mullan >>>>> wrote: >>>>> >>>>> >>>>>>> http://cr.openjdk.java.net/~weijun/6997010/webrev.00/ >>>>>>> >>>>>>> >>>>>>> 4. *IMPORTANT*: In order to easily maintain platform-related >>>>>>> entries, >>>>>>> every line (including the last line) in package.access and >>>>>>> package.definition MUST end with ',\' now. A blank line MUST exist >>>>>>> after the last line. This avoid ugly lines like >>>>>>> >>>>>>> #ifndef windows entry1. #endif #ifdef windows entry1.,\ entry2 >>>>>>> #endif >>>>>>> >>>>>> What happens if someone (inevitably) adds a new package to the >>>>>> list and forgets to do either of these? Does it result in a build >>>>>> failure? >>>>>> >>>>> No build failure, but >>>>> test/java/security/SecurityManager/CheckPackageAccess.java will fail. >>>>> >>>>> I can add check in the build tool. >>>>> >>>>> >>>>>> Otherwise looks good, although I think it would be useful to >>>>>> write an additional test to make sure the correct providers are >>>>>> installed and ordered correctly on the different platforms, >>>>>> something similar to the >>>>>> java/lang/SecurityManager/CheckPackageAccess.java test but >>>>>> specific to providers. >>>>>> >>>>> OK. >>>>> >>>>> Thanks >>>>> Max >>>>> >>>>> >>> >> From weijun.wang at oracle.com Wed Aug 6 09:14:13 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Wed, 06 Aug 2014 17:14:13 +0800 Subject: RFR 6997010: Consolidate java.security files into one file with modifications In-Reply-To: <53E1EFB3.8000004@oracle.com> References: <53D26A23.2010806@oracle.com> <902FCDAA-E90B-4677-836C-D294D725FB45@oracle.com> <53D63762.3040200@oracle.com> <53E14BA3.8020408@oracle.com> <53E1EFB3.8000004@oracle.com> Message-ID: <53E1F1E5.9070001@oracle.com> On 8/6/2014 17:04, Erik Joelsson wrote: > Speaking of indentation, please also change the ifdef bodies to 2 spaces. Sure. Whenever I edit a Makefile, I dare not use spaces and always use TABs. Obviously an ifdef does not need it. Thanks Max From erik.joelsson at oracle.com Wed Aug 6 09:28:56 2014 From: erik.joelsson at oracle.com (Erik Joelsson) Date: Wed, 06 Aug 2014 11:28:56 +0200 Subject: RFR 6997010: Consolidate java.security files into one file with modifications In-Reply-To: <53E1F1E5.9070001@oracle.com> References: <53D26A23.2010806@oracle.com> <902FCDAA-E90B-4677-836C-D294D725FB45@oracle.com> <53D63762.3040200@oracle.com> <53E14BA3.8020408@oracle.com> <53E1EFB3.8000004@oracle.com> <53E1F1E5.9070001@oracle.com> Message-ID: <53E1F558.6090200@oracle.com> On 2014-08-06 11:14, Weijun Wang wrote: > On 8/6/2014 17:04, Erik Joelsson wrote: >> Speaking of indentation, please also change the ifdef bodies to 2 >> spaces. > > Sure. Whenever I edit a Makefile, I dare not use spaces and always use > TABs. Obviously an ifdef does not need it. > The tab character unfortunately has significance in make, so we carefully differentiate between using space and tab when it's appropriate. A tab in the wrong place can also cause trouble. /Erik > Thanks > Max From xuelei.fan at oracle.com Wed Aug 6 12:55:29 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Wed, 06 Aug 2014 20:55:29 +0800 Subject: On 8038089: TLS optional support for Kerberos cipher suites needs to be re-examine In-Reply-To: References: <53A3C4A6.7030606@oracle.com> <780FD2A0-ADA6-4A77-ADBE-7FAA8AF8B866@oracle.com> <53A3D33C.9070009@oracle.com> <60040DD4-F887-45B0-85EE-678637B266CA@oracle.com> <53A3F4D9.4060102@oracle.com> <183BD754-34FB-4351-A25B-65A82830AA7B@oracle.com> <53A3FCFB.4090002@oracle.com> <215A6E73-07CA-44C1-87BB-934F420A666C@oracle.com> <53C3E241.5040606@oracle.com> <53C3F9AC.3040008@oracle.com> <53C75299.3060007@oracle.com> Message-ID: <53E225C1.80702@oracle.com> Weijun, Where the krb5 impl will be packaged into in the future? Still the SunProvider but in a new jar file? I was wondering whether we can use the provider service approach that we used to define other security components implementations. I'm not quite confident with the security of the use of ServiceLoader.load(). Xuelei On 8/4/2014 9:48 AM, Wang Weijun wrote: > Hi Xuelei > > Are you OK with the code change? The updated webrev is now at > > http://cr.openjdk.java.net/~weijun/8038089/webrev.02/ > > Comparing to the last version. there are some comment changes and emptying refs.allowed. The only major change is that the ServiecLoader now uses system class loader. > > Thanks > Max > > On Jul 21, 2014, at 16:22, Wang Weijun wrote: > >> Please review the updated webrev at >> >> http://cr.openjdk.java.net/~weijun/8038089/webrev.01 >> >> Some comment changes. Some arguments rearrangement between classes. >> >> The interface is still in sun.security.ssl. It will be easy to move it to somewhere else later. When module is introduced, we may need to export the interface from java.base to java.security.jgss. >> >> Thanks >> Max >> >> On Jul 17, 2014, at 12:35, Xuelei Fan wrote: >> >>> On 7/16/2014 4:41 PM, Wang Weijun wrote: >>>> Hi Xuelei >>>> >>>> A *primitive* version of webrev available at >>>> >>>> http://cr.openjdk.java.net/~weijun/8038089/webrev.00 >>>> >>>> Please confirm this is the way you like it. >>>> >>> I have not read too much about the details of the update. But looks >>> like it is in the right way. >>> >>>> ExternalCipherSuite is the service interface and Krb5CipherSuite implements it. It's a modification of the old Krb5Proxy but I've moved as many as Kerberos-related codes to the implementation side so it has less methods now. >>>> >>>> Most likely we will define this new interface in a public package. >>>> >>> If krb5 is the only external implementation of TLS cipher suites, I >>> think, we may want to try the best not to define public interface if >>> possible. >>> >>> Thanks, >>> Xuelei >>> >>>> I didn't touch any core SSL classes except for ClientHandshaker and ServerHandShaker. If you think there are other places too closely connected with kerberos, please let me know. >>>> >>>> Ideally, those >>>> >>>> case K_KRB5: case K_KRB5_EXPORT: >>>> Krb5Helper.doXXX(...): >>>> >>>> should be something like >>>> >>>> default: >>>> getExternalHelper(keyExchange).doXXX(...) >>>> >>>> but I guess we won't do that unless we know there will be a second implementation. >>>> >>>> Thanks >>>> Max >>>> >>>> >>>> >>>> >>>> >>>> >>> >> > From jason.uh at oracle.com Wed Aug 6 18:32:50 2014 From: jason.uh at oracle.com (Jason Uh) Date: Wed, 06 Aug 2014 11:32:50 -0700 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName Message-ID: <53E274D2.2050801@oracle.com> Please review this fix, which allows the first character of a DNSName in a SubjectAltName to be either a letter or a digit. http://cr.openjdk.java.net/~juh/8054380/webrev.01/ This change is to stay compliant with RFC 1123: RFC 1123, Section 2.1: > One aspect of host name syntax is hereby changed: the > restriction on the first character is relaxed to allow either a > letter or a digit. Host software MUST support this more liberal > syntax. Please note this only applies to the first character of the hostname, not the first character of each component in the DNS Name. Given the grammar defined in RFC 952: ::= ::= *["."] ::= [*[]] That is all that is allowed by the above update in RFC 1123. Thanks, Jason From amanda.jiang at oracle.com Wed Aug 6 22:24:01 2014 From: amanda.jiang at oracle.com (Amanda Jiang) Date: Wed, 06 Aug 2014 15:24:01 -0700 Subject: RFR J8050281: New permission tests for JEP 140 In-Reply-To: <53D984DA.2090908@oracle.com> References: <53D984DA.2090908@oracle.com> Message-ID: <53E2AB01.4040100@oracle.com> Updated the original codes for better handling interrupted exception. webrev: http://cr.openjdk.java.net/~tyan/amandaj/JDK-8031661/webrev.01/ Thanks, Amanda On 7/30/14 4:50 PM, Amanda Jiang wrote: > Hi All, > > Could you please review following 2 new regression tests to be added > for JEP140 (Limied doPrivileged). > New tests are added to perform permission tests for limited > doprivileged with multiple threads , and basic API testing. > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050281 > webrev: http://cr.openjdk.java.net/~rhalade/8050281/webrev.00/ > > Thanks, > Amanda From amanda.jiang at oracle.com Wed Aug 6 22:25:21 2014 From: amanda.jiang at oracle.com (Amanda Jiang) Date: Wed, 06 Aug 2014 15:25:21 -0700 Subject: RFR J8050281: New permission tests for JEP 140 In-Reply-To: <53E2AB01.4040100@oracle.com> References: <53D984DA.2090908@oracle.com> <53E2AB01.4040100@oracle.com> Message-ID: <53E2AB51.2000405@oracle.com> Sorry, wrong webrev link, it should be: http://cr.openjdk.java.net/~tyan/amandaj/8050281/webrev.01/ Thanks, Amanda On 8/6/14 3:24 PM, Amanda Jiang wrote: > Updated the original codes for better handling interrupted exception. > webrev: http://cr.openjdk.java.net/~tyan/amandaj/JDK-8031661/webrev.01/ > > Thanks, > Amanda > > On 7/30/14 4:50 PM, Amanda Jiang wrote: >> Hi All, >> >> Could you please review following 2 new regression tests to be added >> for JEP140 (Limied doPrivileged). >> New tests are added to perform permission tests for limited >> doprivileged with multiple threads , and basic API testing. >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050281 >> webrev: http://cr.openjdk.java.net/~rhalade/8050281/webrev.00/ >> >> Thanks, >> Amanda > From weijun.wang at oracle.com Thu Aug 7 02:53:25 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Thu, 07 Aug 2014 10:53:25 +0800 Subject: On 8038089: TLS optional support for Kerberos cipher suites needs to be re-examine In-Reply-To: <53E225C1.80702@oracle.com> References: <53A3C4A6.7030606@oracle.com> <780FD2A0-ADA6-4A77-ADBE-7FAA8AF8B866@oracle.com> <53A3D33C.9070009@oracle.com> <60040DD4-F887-45B0-85EE-678637B266CA@oracle.com> <53A3F4D9.4060102@oracle.com> <183BD754-34FB-4351-A25B-65A82830AA7B@oracle.com> <53A3FCFB.4090002@oracle.com> <215A6E73-07CA-44C1-87BB-934F420A666C@oracle.com> <53C3E241.5040606@oracle.com> <53C3F9AC.3040008@oracle.com> <53C75299.3060007@oracle.com> <53E225C1.80702@oracle.com> Message-ID: <53E2EA25.4020301@oracle.com> On 8/6/2014 20:55, Xuelei Fan wrote: > Weijun, > > Where the krb5 impl will be packaged into in the future? In the java.jgss module. > Still the > SunProvider but in a new jar file? I was wondering whether we can use > the provider service approach that we used to define other security > components implementations. I'm not quite confident with the security > of the use of ServiceLoader.load(). You mean define a new provider service like "MessageDigest" and "Cipher", I think that's a heavier version of ServiceLoader. Also this interface is now quite premature and only used internal. By security, are you afraid of someone providing his own implementation and shadow the JDK one? I'll do some investigation. --Max > > Xuelei > > > On 8/4/2014 9:48 AM, Wang Weijun wrote: >> Hi Xuelei >> >> Are you OK with the code change? The updated webrev is now at >> >> http://cr.openjdk.java.net/~weijun/8038089/webrev.02/ >> >> Comparing to the last version. there are some comment changes and emptying refs.allowed. The only major change is that the ServiecLoader now uses system class loader. >> >> Thanks >> Max >> >> On Jul 21, 2014, at 16:22, Wang Weijun wrote: >> >>> Please review the updated webrev at >>> >>> http://cr.openjdk.java.net/~weijun/8038089/webrev.01 >>> >>> Some comment changes. Some arguments rearrangement between classes. >>> >>> The interface is still in sun.security.ssl. It will be easy to move it to somewhere else later. When module is introduced, we may need to export the interface from java.base to java.security.jgss. >>> >>> Thanks >>> Max >>> >>> On Jul 17, 2014, at 12:35, Xuelei Fan wrote: >>> >>>> On 7/16/2014 4:41 PM, Wang Weijun wrote: >>>>> Hi Xuelei >>>>> >>>>> A *primitive* version of webrev available at >>>>> >>>>> http://cr.openjdk.java.net/~weijun/8038089/webrev.00 >>>>> >>>>> Please confirm this is the way you like it. >>>>> >>>> I have not read too much about the details of the update. But looks >>>> like it is in the right way. >>>> >>>>> ExternalCipherSuite is the service interface and Krb5CipherSuite implements it. It's a modification of the old Krb5Proxy but I've moved as many as Kerberos-related codes to the implementation side so it has less methods now. >>>>> >>>>> Most likely we will define this new interface in a public package. >>>>> >>>> If krb5 is the only external implementation of TLS cipher suites, I >>>> think, we may want to try the best not to define public interface if >>>> possible. >>>> >>>> Thanks, >>>> Xuelei >>>> >>>>> I didn't touch any core SSL classes except for ClientHandshaker and ServerHandShaker. If you think there are other places too closely connected with kerberos, please let me know. >>>>> >>>>> Ideally, those >>>>> >>>>> case K_KRB5: case K_KRB5_EXPORT: >>>>> Krb5Helper.doXXX(...): >>>>> >>>>> should be something like >>>>> >>>>> default: >>>>> getExternalHelper(keyExchange).doXXX(...) >>>>> >>>>> but I guess we won't do that unless we know there will be a second implementation. >>>>> >>>>> Thanks >>>>> Max >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >> > From florian.bruckner at 3kraft.com Thu Aug 7 07:18:47 2014 From: florian.bruckner at 3kraft.com (Florian Bruckner (3kraft)) Date: Thu, 07 Aug 2014 09:18:47 +0200 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: <53E134E6.5070707@oracle.com> References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> <53DFA249.3000207@3kraft.com> <53E134E6.5070707@oracle.com> Message-ID: <53E32857.1050103@3kraft.com> Hi Sean, I have submitted the signed OCA yesterday. I'll let you know once it has been approved. regards, Florian On 05.08.14 21:47, Sean Mullan wrote: > On 08/04/2014 11:10 AM, Florian Bruckner (3kraft) wrote: >> Hey guys, >> >> any feedback/comments on this? > > This seems like a reasonable change to me. In order to proceed with accepting your patch, you will > first need to sign an OCA. See step 0 of http://openjdk.java.net/contribute/ > > Thanks, > Sean > From ivan.gerasimov at oracle.com Thu Aug 7 12:21:37 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Thu, 07 Aug 2014 16:21:37 +0400 Subject: [8u40] Request for approval: 8046343: (smartcardio) CardTerminal.connect('direct') does not work on MacOSX Message-ID: <53E36F51.8000302@oracle.com> Hello! May I ask for the approval to backport into 8u-dev repo? The fix is the same as in jdk9 modulo lambda, so I'm including the webrev here. Jdk8 webrev: http://cr.openjdk.java.net/~igerasim/8046343/2/webrev/ Bug: https://bugs.openjdk.java.net/browse/JDK-8046343 Jdk9 change: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/89bed86930d8 Jdk9 review: http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html Sincerely yours, Ivan From fweimer at redhat.com Thu Aug 7 12:47:57 2014 From: fweimer at redhat.com (Florian Weimer) Date: Thu, 07 Aug 2014 14:47:57 +0200 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53E274D2.2050801@oracle.com> References: <53E274D2.2050801@oracle.com> Message-ID: <53E3757D.5090707@redhat.com> On 08/06/2014 08:32 PM, Jason Uh wrote: > Please review this fix, which allows the first character of a DNSName in > a SubjectAltName to be either a letter or a digit. > > http://cr.openjdk.java.net/~juh/8054380/webrev.01/ The test case should also check "123.example" and "www.123.example". > This change is to stay compliant with RFC 1123: > > RFC 1123, Section 2.1: >> One aspect of host name syntax is hereby changed: the >> restriction on the first character is relaxed to allow either a >> letter or a digit. Host software MUST support this more liberal >> syntax. > > Please note this only applies to the first character of the hostname, > not the first character of each component in the DNS Name. The RFC 1123 change applies to each label, not just to the first one. I wonder why using the HTTPS to access works with the current jdk9-dev code. The name "www.3com.com" is only present in the SAN. -- Florian Weimer / Red Hat Product Security From sean.mullan at oracle.com Thu Aug 7 13:32:31 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 07 Aug 2014 09:32:31 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53E3757D.5090707@redhat.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> Message-ID: <53E37FEF.80506@oracle.com> On 08/07/2014 08:47 AM, Florian Weimer wrote: > I wonder why using the HTTPS to access works with > the current jdk9-dev code. The name "www.3com.com" is only present in > the SAN. Is the SAN extension non-critical? If so, that could explain why. We allow X509Certificates to be created with unparseable non-critical extensions. --Sean From sean.coffey at oracle.com Thu Aug 7 14:07:12 2014 From: sean.coffey at oracle.com (=?UTF-8?B?U2XDoW4gQ29mZmV5?=) Date: Thu, 07 Aug 2014 15:07:12 +0100 Subject: [8u40] Request for approval: 8046343: (smartcardio) CardTerminal.connect('direct') does not work on MacOSX In-Reply-To: <53E36F51.8000302@oracle.com> References: <53E36F51.8000302@oracle.com> Message-ID: <53E38810.2070800@oracle.com> Ivan, No need to convert the JDK 9 patch here. Lambda in JDK 8u! I'm approving the jdk9 changeset for import into jdk8u-dev on condition that it applies cleanly. If it doesn't get a peer code review. regards, Sean. On 07/08/2014 13:21, Ivan Gerasimov wrote: > Hello! > > May I ask for the approval to backport into 8u-dev repo? > The fix is the same as in jdk9 modulo lambda, so I'm including the > webrev here. > > Jdk8 webrev: http://cr.openjdk.java.net/~igerasim/8046343/2/webrev/ > > Bug: https://bugs.openjdk.java.net/browse/JDK-8046343 > Jdk9 change: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/89bed86930d8 > Jdk9 review: > http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html > > Sincerely yours, > Ivan From ivan.gerasimov at oracle.com Thu Aug 7 14:15:30 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Thu, 07 Aug 2014 18:15:30 +0400 Subject: [8u40] Request for approval: 8046343: (smartcardio) CardTerminal.connect('direct') does not work on MacOSX In-Reply-To: <53E38810.2070800@oracle.com> References: <53E36F51.8000302@oracle.com> <53E38810.2070800@oracle.com> Message-ID: <53E38A02.8060601@oracle.com> On 07.08.2014 18:07, Se?n Coffey wrote: > Ivan, > > No need to convert the JDK 9 patch here. Lambda in JDK 8u! > I'm approving the jdk9 changeset for import into jdk8u-dev on > condition that it applies cleanly. If it doesn't get a peer code review. > Thanks Se?n! Yes, it was meant to remove lambda in the backport to 7 not to 8 :-) I confirm that the patch applies cleanly. Sincerely yours, Ivan > regards, > Sean. > > On 07/08/2014 13:21, Ivan Gerasimov wrote: >> Hello! >> >> May I ask for the approval to backport into 8u-dev repo? >> The fix is the same as in jdk9 modulo lambda, so I'm including the >> webrev here. >> >> Jdk8 webrev: http://cr.openjdk.java.net/~igerasim/8046343/2/webrev/ >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-8046343 >> Jdk9 change: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/89bed86930d8 >> Jdk9 review: >> http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html >> >> Sincerely yours, >> Ivan > > > From ivan.gerasimov at oracle.com Thu Aug 7 14:54:18 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Thu, 07 Aug 2014 18:54:18 +0400 Subject: [7u-dev] Request for approval: 8046343: (smartcardio) CardTerminal.connect('direct') does not work on MacOSX Message-ID: <53E3931A.7030706@oracle.com> Hello! May I ask for the approval to backport into 7u-dev repo? The fix is the same as in jdk9/8u modulo lambda, so I'm including the webrev here. Jdk7 webrev: http://cr.openjdk.java.net/~igerasim/8046343/3/webrev/ Bug: https://bugs.openjdk.java.net/browse/JDK-8046343 Jdk9 change: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/89bed86930d8 Jdk8 change: http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/725736a9e6d8 Jdk9 review: http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html Sincerely yours, Ivan From jamil.j.nimeh at oracle.com Thu Aug 7 21:03:32 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Thu, 07 Aug 2014 14:03:32 -0700 Subject: RFR 8054366: Broken link in SecureRandom.html Message-ID: <53E3E9A4.1090309@oracle.com> Hello all, This is just a quick broken-link fix for SecureRandom's javadoc. http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 Thanks, --Jamil From xuelei.fan at oracle.com Thu Aug 7 22:30:36 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Fri, 08 Aug 2014 06:30:36 +0800 Subject: RFR 8054366: Broken link in SecureRandom.html In-Reply-To: <53E3E9A4.1090309@oracle.com> References: <53E3E9A4.1090309@oracle.com> Message-ID: <53E3FE0C.20607@oracle.com> Looks fine to me. Thanks, Xuelei On 8/8/2014 5:03 AM, Jamil Nimeh wrote: > Hello all, > > This is just a quick broken-link fix for SecureRandom's javadoc. > > http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 > > Thanks, > --Jamil From sean.mullan at oracle.com Thu Aug 7 22:59:25 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 07 Aug 2014 18:59:25 -0400 Subject: RFR 8054366: Broken link in SecureRandom.html In-Reply-To: <53E3E9A4.1090309@oracle.com> References: <53E3E9A4.1090309@oracle.com> Message-ID: <53E404CD.2080100@oracle.com> On 08/07/2014 05:03 PM, Jamil Nimeh wrote: > Hello all, > > This is just a quick broken-link fix for SecureRandom's javadoc. > > http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 The fix for the broken link looks fine. I think you should double-check with Brad as to whether changing the RFC reference is appropriate. --Sean From bradford.wetmore at oracle.com Thu Aug 7 23:25:02 2014 From: bradford.wetmore at oracle.com (Bradford Wetmore) Date: Thu, 07 Aug 2014 16:25:02 -0700 Subject: RFR 8054366: Broken link in SecureRandom.html In-Reply-To: <53E404CD.2080100@oracle.com> References: <53E3E9A4.1090309@oracle.com> <53E404CD.2080100@oracle.com> Message-ID: <53E40ACE.1060606@oracle.com> On 8/7/2014 3:59 PM, Sean Mullan wrote: > On 08/07/2014 05:03 PM, Jamil Nimeh wrote: >> Hello all, >> >> This is just a quick broken-link fix for SecureRandom's javadoc. >> >> http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 > > The fix for the broken link looks fine. I think you should double-check > with Brad as to whether changing the RFC reference is appropriate. Looking over the Appendix A (changes from 1750), I think this should be ok. These seem to be primarily additional suggestions/caveats, not requirements. Brad From fweimer at redhat.com Fri Aug 8 08:58:12 2014 From: fweimer at redhat.com (Florian Weimer) Date: Fri, 08 Aug 2014 10:58:12 +0200 Subject: RFR 8054366: Broken link in SecureRandom.html In-Reply-To: <53E3E9A4.1090309@oracle.com> References: <53E3E9A4.1090309@oracle.com> Message-ID: <53E49124.4070407@redhat.com> On 08/07/2014 11:03 PM, Jamil Nimeh wrote: > Hello all, > > This is just a quick broken-link fix for SecureRandom's javadoc. > > http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 You could link to the HTML version of the RFC instead: It's nice because it has a link to errata and updating RFCs. -- Florian Weimer / Red Hat Product Security From fweimer at redhat.com Fri Aug 8 08:59:08 2014 From: fweimer at redhat.com (Florian Weimer) Date: Fri, 08 Aug 2014 10:59:08 +0200 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53E37FEF.80506@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> Message-ID: <53E4915C.3080208@redhat.com> On 08/07/2014 03:32 PM, Sean Mullan wrote: > On 08/07/2014 08:47 AM, Florian Weimer wrote: >> I wonder why using the HTTPS to access works with >> the current jdk9-dev code. The name "www.3com.com" is only present in >> the SAN. > > Is the SAN extension non-critical? If so, that could explain why. We > allow X509Certificates to be created with unparseable non-critical > extensions. Yes, it's marked as non-critical. But this doesn't really explain the lack of an exception because the www.3com.com dNSName is obviously used (there's no TLS handshake failure). -- Florian Weimer / Red Hat Product Security From vincent.x.ryan at oracle.com Fri Aug 8 13:51:29 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Fri, 8 Aug 2014 14:51:29 +0100 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice In-Reply-To: <53DF3226.7010601@oracle.com> References: <53DF3226.7010601@oracle.com> Message-ID: Code looks fine. I noticed a few typos: DoPrivTest.java l.26 and DoPrivAccompliceTest.java l.34-38 On 4 Aug 2014, at 08:11, raghu k.nair wrote: > Hello , > Please review the updated tests for doPrivilaged with accomplice. Updated the test to use @compile tag rather than compiling using API. > > Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 > webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ > > Thanks, > Raghu > From jamil.j.nimeh at oracle.com Fri Aug 8 15:45:13 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Fri, 08 Aug 2014 08:45:13 -0700 Subject: RFR 8054366: Broken link in SecureRandom.html In-Reply-To: <53E49124.4070407@redhat.com> References: <53E3E9A4.1090309@oracle.com> <53E49124.4070407@redhat.com> Message-ID: <53E4F089.8070701@oracle.com> On 08/08/2014 01:58 AM, Florian Weimer wrote: > On 08/07/2014 11:03 PM, Jamil Nimeh wrote: >> Hello all, >> >> This is just a quick broken-link fix for SecureRandom's javadoc. >> >> http://cr.openjdk.java.net/~ascarpino/8054366/webrev.01 > > You could link to the HTML version of the RFC instead: > > > > It's nice because it has a link to errata and updating RFCs. Personally I prefer tools.ietf.org for the in-document linking and the other links you referenced, too. I was just trying to keep things consistent with what was already there. If there's no objections I'm happy to use the HTML version instead. --Jamil From peter.firmstone at zeus.net.au Sat Aug 9 05:56:16 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Sat, 09 Aug 2014 15:56:16 +1000 Subject: The future of Serialization Message-ID: <1407563776.1841.30.camel@Nokia-N900> I've noticed there's not much interest in improving Serialization on these lists. This makes me wonder if java Serialization has lost relevance in recent years with the rise of protocol buffers apache thrift and other means of data transfer over byte streams. The burden of implementing Serializable can significantly hamper developers efforts when refactoring, it's quite common for some projects to make no guarantee regarding Serialization compatibility between releases. Also implementation of Serializable can double project development hours, hamper future development and increase software maintenance costs. Serialization also presents opportunities for attackers and has been responsible for a number of zero day exploits. I don't know if isolates will be included with JDK 9 for Jigsaw, or whether ClassLoaders alone will provide isolation for modules. The ability to limit visibility and provide isolation of implementation classes as well as providing limits on memory and threads for isolated modules would also improve platform security. Serialization may provide a means to hot upgrade modules, but more flexible options that doesn't cause serial data lock in need to be developed. Should Serializable eventually be deprecated? Should Serialization be disabled by default? Should a new mechanism be developed? If a new mechanism is developed, what about circular object relationships? Regards, Peter. -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.goetz at oracle.com Sat Aug 9 17:20:47 2014 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 09 Aug 2014 13:20:47 -0400 Subject: The future of Serialization In-Reply-To: <1407563776.1841.30.camel@Nokia-N900> References: <1407563776.1841.30.camel@Nokia-N900> Message-ID: <53E6586F.7080906@oracle.com> > I've noticed there's not much interest in improving Serialization on > these lists. This makes me wonder if java Serialization has lost > relevance in recent years with the rise of protocol buffers apache > thrift and other means of data transfer over byte streams. I sense your frustration, but I think you may be reaching the wrong conclusion. The lack of response is probably not evidence that there's no interest in fixing serialization; its that fixing serialization, with all the constraints that "fix" entails, is just really really hard, and its much easier to complain about it (and even say "let's just get rid of it") than to fix it. > Should Serializable eventually be deprecated? Should Serialization be > disabled by default? Should a new mechanism be developed? If a new > mechanism is developed, what about circular object relationships? As I delved into my own explorations of serialization, I started to realize why such a horrible approach was the one that was ultimately chosen; while serialization is horrible and awful and leaky and insecure and complex and brittle, it does address problems like cyclic data structures and independent evolution of subclass and superclass better than the "clean" models. My conclusion is, at best, a new mechanism would have to live side-by-side with the old one, since it could only handle 95% of the cases. It might handle those 95% much better -- more cleanly, securely, and allowing easier schema evolution -- but the hard cases are still there. Still, reducing the use of the horrible old mechanism may still be a worthy goal, even if it can't be killed outright. From weijun.wang at oracle.com Mon Aug 11 07:35:11 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 11 Aug 2014 15:35:11 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> Message-ID: '\"' can be written as '"': com_sun.diff:209:+ sb.append(' ').append(nodeName).append("=\"").append(att.getNodeValue()).append('\"'); java_lang.diff:31:+ sb.append('\"').append(getThreadName()).append('\"') java_security.diff:78:+ .append('\"'); sun_security.diff:95:+ sb.append(principalInfo[i][0]).append(' ').append('\"').append(principalInfo[i][1]).append('\"'); sun_security.diff:108:+ .append('\"'); sun_security.diff:122:+ sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('\"'); sun_security.diff:312:+ retval.append('\"').append(sbuffer.toString()).append('\"'); Still using append("."): java_security.diff:107:+ sb.append("\n").append(type).append(" Cert Path: length = ").append(getCertificates().size()).append(".\n"); java_security.diff:148:+ sb.append(" serverName: ").append(serverName).append("\n"); javax_swing.diff:79:+ sb.append(getClass().getName()).append(" ").append(Integer.toString(hashCode())); sun_security.diff:419:+ sb.append("X.509 CRL v").append(version + 1).append("\n"); I only read the security related files, but I grep for the two groups above. Also, it's better to put rb.getString(...) to one line sun_security.diff:268:+ sb.append('\n').append(tab).append(rb.getString( sun_security.diff:273:+ sb.append('\n').append(tab).append(rb.getString( And some lines are too long. Thanks Max On Aug 11, 2014, at 11:29, Ot?vio Gon?alves de Santana wrote: > Done. > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_2.zip > > obs: stay the 2 chars to better performance. > > > On Sun, Aug 10, 2014 at 8:03 PM, Claes Redestad wrote: > +1 > > Some suggestions (mostly nits): > > - in places like src/share/classes/java/util/regex/Pattern.java you introducesingle-char > strings which might use a char instead: > > - result.append("|"+next); > + result.append('|').append(next); > > - in places like src/share/classes/sun/security/provider/PolicyFile.java > you end up with a sequence of String literal appends which could be merged into one: > > - sb.append(principalInfo[i][0] + " " + > - "\"" + principalInfo[i][1] + "\""); > + sb.append(principalInfo[i][0]).append(" \"") > + .append(principalInfo[i][1]).append('"'); > > - in some places like src/share/classes/java/text/ChoiceFormat.java > you end up doing append(""). I guess the empty string concatenation was used as a form > of primitive-to-string coercion and was probably always redundant already, but care needs > to be taken that doing the append directly behave as intended. > > I think it should be safe to just remove the empty string append in most cases: > > - result.append(""+choiceLimits[i]); > + result.append(choiceLimits[i]); > > Thanks! > > /Claes > > On 2014-08-10 23:33, Ot?vio Gon?alves de Santana wrote: > *Motivation:* Make another append instead of concat String inside of append > > parameter in StringBuilder class. To avoid an extra StringBuilder created > for the purpose of concatenating. So it will save memory and will faster > than concat String. > Doing a code to benchMark[1], the result is: > > Benchmark Mode Samples > Mean Mean error Units > m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 > 6317444.705 108673.584 ops/s > m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 > 3354554.435 68353.924 ops/s > > The webrev of all code is: > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat.zip > > > [1] > > @State(Scope.Thread) > @OutputTimeUnit(TimeUnit.SECONDS) > public class StringBuilderConcatBenchMark { > > > private static final String F = "!!!!"; > private static final String E = " running in Java "; > private static final String D = " in the code "; > private static final String C = " to try impact "; > private static final String B = " with some text "; > private static final String A = "Doing a test"; > > @GenerateMicroBenchmark > public void stringBuilder(BlackHole bh) { > bh.consume(createBuilder(A, B, C, D, E, F)); > } > > @GenerateMicroBenchmark > public void stringBuilderWithConcat(BlackHole bh) { > bh.consume(createBuilderWithConcat(A, B, C, D, E, F)); > } > > private StringBuilder createBuilder(String... values) { > StringBuilder text = new StringBuilder(); > text.append(values[0]).append(values[1]) > .append(values[2]).append(values[3]) > .append(values[4]).append(values[5]); > return text; > } > private StringBuilder createBuilderWithConcat(String... values) { > StringBuilder text = new StringBuilder(); > text.append(values[0] + values[1]) > .append(values[2] + values[3]) > .append(values[4]+ values[5]); > return text; > } > } > > > > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: http://about.me/otaviojava > 55 (11) 98255-3513 > From andrej.golovnin at gmail.com Mon Aug 11 09:42:41 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Mon, 11 Aug 2014 11:42:41 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> Message-ID: Hi Ot?vio, the class src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java is generated from the grammar src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Therefore when you are going to change the Parser class, then you must change the grammar files too. In other case your changes maybe overwritten in the future, when someone decides to regenerate the Parser class. The classes src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java are generated from the templates provided by JavaCC https://java.net/projects/javacc/sources/svn/show/trunk/src/main/resources/templates?rev=689 You should consider contributing you changes to the ParseException and TokenMgrError classes to the JavaCC project as well. In the class src/share/classes/javax/management/openmbean/CompositeType.java you have added the annotation @SuppressWarnings("StringConcatenationInsideStringBufferAppend") instead of fixing the concatenation inside the append method. Why? And I would like to suggest to drop explicit usage of StringBuilder in some methods at all to improve code readability. Take look for example at the class src/share/classes/java/lang/management/MemoryUsage.java and its #toString()-method: Before your change: 239 public String toString() { 240 StringBuilder buf = new StringBuilder(); 241 buf.append("init = " + init + "(" + (init >> 10) + "K) "); 242 buf.append("used = " + used + "(" + (used >> 10) + "K) "); 243 buf.append("committed = " + committed + "(" + 244 (committed >> 10) + "K) " ); 245 buf.append("max = " + max + "(" + (max >> 10) + "K)"); 246 return buf.toString(); 247 } After your change: 239 public String toString() { 240 StringBuilder buf = new StringBuilder(); 241 buf.append("init = ").append(init).append('(').append(init >> 10).append("K) "); 242 buf.append("used = ").append(used).append('(').append(used >> 10).append("K) "); 243 buf.append("committed = ").append(committed).append('(').append(committed >> 10).append("K) "); 244 buf.append("max = ").append(max).append('(').append(max >> 10).append("K)"); 245 return buf.toString(); 246 } And if we drop explicit usage of StringBuilder and let the Java compiler do its magic, then it looks like this: 239 public String toString() { 240 return "init = " + init + "(" + (init >> 10) + "K) " 241 + "used = " + used + "(" + (used >> 10) + "K) " 242 + "committed = " + committed + "(" + (committed >> 10) + "K) " 243 + "max = " + max + "(" + (max >> 10) + "K)"; 244 } For me this code is easier to read and understand, then the code before and after your change. But this is only my opinion. Other candidates for such change may be: src/share/classes/com/sun/crypto/provider/DHParameters.java src/share/classes/com/sun/crypto/provider/DHPublicKey.java src/share/classes/com/sun/crypto/provider/GCMParameters.java src/share/classes/com/sun/crypto/provider/OAEPParameters.java src/share/classes/com/sun/crypto/provider/RC2Parameters.java src/share/classes/java/security/CodeSigner.java src/share/classes/java/security/cert/CollectionCertStoreParameters.java src/share/classes/java/security/cert/LDAPCertStoreParameters.java src/share/classes/java/security/cert/PKIXBuilderParameters.java src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java src/share/classes/java/security/cert/PolicyQualifierInfo.java src/share/classes/java/util/Scanner.java src/share/classes/java/util/regex/Matcher.java src/share/classes/javax/management/relation/RoleInfo.java src/share/classes/javax/naming/RefAddr.java src/share/classes/sun/security/pkcs/SigningCertificateInfo.java src/share/classes/sun/security/provider/certpath/CertId.java src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java src/share/classes/sun/security/x509/DistributionPointName.java src/share/classes/sun/security/x509/PolicyInformation.java src/share/classes/sun/security/x509/X509CertImpl.java In the #toString()-method of src/share/classes/javax/swing/RepaintManager.java we can avoid creation of StringBuilder if we change it from: 992 public synchronized String toString() { 993 StringBuilder sb = new StringBuilder(); 994 if(dirtyComponents != null) 995 sb.append(dirtyComponents); 996 return sb.toString(); 997 } to: 992 public synchronized String toString() { 993 return dirtyComponents != null ? dirtyComponents.toString : ""; 994 } In src/share/classes/sun/net/www/HeaderParser.java please change the line 223 to use StringBuilder instead of StringBuffer. In the class src/share/classes/sun/security/ssl/ServerNameExtension.java the #toString()-method can be changed from: 268 public String toString() { 269 StringBuilder sb = new StringBuilder(); 270 for (SNIServerName sniName : sniMap.values()) { 271 sb.append('[').append(sniName).append(']'); 272 } 273 274 return "Extension " + type + ", server_name: " + sb; 275 } to: 268 public String toString() { 269 StringBuilder sb = new StringBuilder(); 270 sb.append("Extension ").append(type).append(", server_name: "); 271 for (SNIServerName sniName : sniMap.values()) { 272 sb.append('[').append(sniName).append(']'); 273 } 274 275 return sb.toString(); 276 } to avoid creation of an additional StringBuilder-object in the line 274. Similar change can be applied to the class src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java. Best regards, Andrej Golovnin On Mon, Aug 11, 2014 at 5:29 AM, Ot?vio Gon?alves de Santana < otaviojava at java.net> wrote: > Done. > > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_2.zip > > obs: stay the 2 chars to better performance. > > > On Sun, Aug 10, 2014 at 8:03 PM, Claes Redestad > > wrote: > > > +1 > > > > Some suggestions (mostly nits): > > > > - in places like src/share/classes/java/util/regex/Pattern.java you > > introducesingle-char > > strings which might use a char instead: > > > > - result.append("|"+next); > > + result.append('|').append(next); > > > > - in places like src/share/classes/sun/security/provider/PolicyFile.java > > you end up with a sequence of String literal appends which could be > > merged into one: > > > > - sb.append(principalInfo[i][0] + " " + > > - "\"" + principalInfo[i][1] + "\""); > > + sb.append(principalInfo[i][0]).append(" \"") > > + .append(principalInfo[i][1]).append('"'); > > > > - in some places like src/share/classes/java/text/ChoiceFormat.java > > you end up doing append(""). I guess the empty string concatenation was > > used as a form > > of primitive-to-string coercion and was probably always redundant > > already, but care needs > > to be taken that doing the append directly behave as intended. > > > > I think it should be safe to just remove the empty string append in > most > > cases: > > > > - result.append(""+choiceLimits[i]); > > + result.append(choiceLimits[i]); > > > > Thanks! > > > > /Claes > > > > On 2014-08-10 23:33, Ot?vio Gon?alves de Santana wrote: > > > >> *Motivation:* Make another append instead of concat String inside of > >> append > >> > >> parameter in StringBuilder class. To avoid an extra StringBuilder > created > >> for the purpose of concatenating. So it will save memory and will faster > >> than concat String. > >> Doing a code to benchMark[1], the result is: > >> > >> Benchmark Mode > Samples > >> Mean Mean error Units > >> m.StringBuilderConcatBenchMark.stringBuilder thrpt > 10 > >> 6317444.705 108673.584 ops/s > >> m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt > 10 > >> 3354554.435 68353.924 ops/s > >> > >> The webrev of all code is: > >> https://dl.dropboxusercontent.com/u/16109193/open_jdk/ > >> string_builder_concat.zip > >> >> builder_concat.zip> > >> > >> [1] > >> > >> @State(Scope.Thread) > >> @OutputTimeUnit(TimeUnit.SECONDS) > >> public class StringBuilderConcatBenchMark { > >> > >> > >> private static final String F = "!!!!"; > >> private static final String E = " running in Java "; > >> private static final String D = " in the code "; > >> private static final String C = " to try impact "; > >> private static final String B = " with some text "; > >> private static final String A = "Doing a test"; > >> > >> @GenerateMicroBenchmark > >> public void stringBuilder(BlackHole bh) { > >> bh.consume(createBuilder(A, B, C, D, E, F)); > >> } > >> > >> @GenerateMicroBenchmark > >> public void stringBuilderWithConcat(BlackHole bh) { > >> bh.consume(createBuilderWithConcat(A, B, C, D, E, F)); > >> } > >> > >> private StringBuilder createBuilder(String... values) { > >> StringBuilder text = new StringBuilder(); > >> text.append(values[0]).append(values[1]) > >> .append(values[2]).append(values[3]) > >> .append(values[4]).append(values[5]); > >> return text; > >> } > >> private StringBuilder createBuilderWithConcat(String... values) { > >> StringBuilder text = new StringBuilder(); > >> text.append(values[0] + values[1]) > >> .append(values[2] + values[3]) > >> .append(values[4]+ values[5]); > >> return text; > >> } > >> } > >> > >> > > > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: *http://about.me/otaviojava * > 55 (11) 98255-3513 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From peter.firmstone at zeus.net.au Mon Aug 11 10:12:14 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Mon, 11 Aug 2014 20:12:14 +1000 Subject: The future of Serialization In-Reply-To: <53E6586F.7080906@oracle.com> References: <1407563776.1841.30.camel@Nokia-N900> <53E6586F.7080906@oracle.com> Message-ID: <53E896FE.3030706@zeus.net.au> Brian, Thanks for picking up on my frustration ;) I have something in mind for Serializable2 to address cyclic data structures and the possibility of independant evolution of super and child classes, while retaining a relatively clean public api, with one optional private method. The methods and interfaces proposed are suitable for any alternative ObjectInput and ObjectOutput implementation. An interface exists in Apache River, it's called Startable, it has one method: public void start() throws Exception; It's called by a framework to allow an Object to start threads, publish "this" or throw an exception after construction. The intent is to allow an object to be immutable with final fields and be provided with a thread of execution after construction and before publication. Something similar can be used to wire up circular relations, let met explain: Every class that implements Serializable has one thing in common, the Serialization protocol and every Object instance of a Serializable class has an arbitrary serial form. I propose a final class representing SerialForm for an object, that cannot be extended, requires privilege to instantiate and also performs method guard security checks, for all callers with the exception of a calling class reading or writing its own serial form. SerialForm needs a parameter field key identity represented by the calling Class, the method name and the field's Class type, this key would be used for both writing and retrieving a field entry in SerialForm. SerialForm will also provide a method to advise if a field key contains a circular relation, any field entry in SerialForm that would contain a circular relation is not populated until after construction of the current object is complete. An arbitrary Serializable2 Object instance may be composed of a hierarchy of classes, each belonging to a separate ProtectionDomain. For the following interface: public interface Serializable2 { void writeObject(SerialForm serial) throws IOException; } Implementers of Serializable2 must: 1. Implement writeObject 2. Implement a constructor with the signature: (SerialForm serial). Implementors that need to check invariants, delay throwing an Exception, publish "this" or set a circular reference after construction should: 4. Implement: private void readObjectNoData() throws InvalidObjectException; Child class implementations should: 5. Call their super class writeObject method and superclass constructor, but may call any super class constructor or methods. Compatibility and Evolution: 1. Fields can be included or omitted from SerialForm, by an implementation, without breaking compatibility, provided a null reference is accepted during deserialization. 2. Child classes in a hierarchy; all Serializable2 implementing superclass constructors have the same signature; the superclass implementation can be substituted, without breaking child class deserialization (provided this is the constructor used by the child class). 3. There is no serialVersionUID. 4. Child class Serializable2 implementations can extend a superclass without a zero arg constructor that doesn't itself implement Serializable2. 5. Child classes that do not override writeObject will not be serialized, so can effectively opt out. 6. Because implementations are required to implement public methods, there is no "Magic". 7. Serializable2 shouldn't extend Serializable, allowing classes to implement both interfaces for a period of time (for that reason the signature for readObjectNoData may need to be changed for Serializable2). 8. ObjectInputStream and ObjectOutputStream can be extended to support both implementations for compatibility, however alternative stream implementations would be preferable for Serializable2 to avoid Serializable security issues. The new implementations should be possible to substitute because both types would use the same Stream Protocol, provided the classes being deserialized implement Serializable2. My reasoning for retaining readObjectNoData() and for updating field entry's in SerialForm that contain circular relations after construction, is: 1. An object reference for the object currently being deserialized can be passed to another object's constructor (via a SerialForm instance) after the current Object's constructor completes, allowing safe publication of final field freezes that occur at the end of construction. 2. When the Serialization2 Framework becomes aware of an object that contains a circular relationship while that object is in the process of being deserialized, the second object will not be instantiated until after the constructor of the first object in the relationship completes. Data read in from the stream can be stored in a SerialForm without requiring object instantation. 3. After construction completes, the object that has just been deserialized can retain a copy of its SerialForm and look up the field containing a circular relationship, the Serialization framework will update its SerialForm with the new object that holds a circular relationship, prior to calling readObjectNoData() on the first object. 4. If the developer of the implementing class is not aware of the possibility of a circular relationship, then the worst consequence is a field will be set to null during construction, "this" will not escape. 5. The second Object holding a link to an object that apears earlier in the stream, may not be aware that the object it holds a reference to also needs a reference to it. The first object will not obtain a reference to the second until both Object constructors have completed. The second object may not need to implement readObjectNoData(). 6. readObjectNoData() needs to be called on every class belonging to a single Object's inheritance hierarchy, when defined, after all constructors have completed, it should be called in the order of superclass to child class. Thoughts? Regards, Peter. On 10/08/2014 3:20 AM, Brian Goetz wrote: >> I've noticed there's not much interest in improving Serialization on >> these lists. This makes me wonder if java Serialization has lost >> relevance in recent years with the rise of protocol buffers apache >> thrift and other means of data transfer over byte streams. > > I sense your frustration, but I think you may be reaching the wrong > conclusion. The lack of response is probably not evidence that > there's no interest in fixing serialization; its that fixing > serialization, with all the constraints that "fix" entails, is just > really really hard, and its much easier to complain about it (and even > say "let's just get rid of it") than to fix it. > >> Should Serializable eventually be deprecated? Should Serialization be >> disabled by default? Should a new mechanism be developed? If a new >> mechanism is developed, what about circular object relationships? > > As I delved into my own explorations of serialization, I started to > realize why such a horrible approach was the one that was ultimately > chosen; while serialization is horrible and awful and leaky and > insecure and complex and brittle, it does address problems like cyclic > data structures and independent evolution of subclass and superclass > better than the "clean" models. > > My conclusion is, at best, a new mechanism would have to live > side-by-side with the old one, since it could only handle 95% of the > cases. It might handle those 95% much better -- more cleanly, > securely, and allowing easier schema evolution -- but the hard cases > are still there. Still, reducing the use of the horrible old > mechanism may still be a worthy goal, even if it can't be killed > outright. > From peter.firmstone at zeus.net.au Mon Aug 11 10:18:28 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Mon, 11 Aug 2014 20:18:28 +1000 Subject: The future of Serialization In-Reply-To: <53E896FE.3030706@zeus.net.au> References: <1407563776.1841.30.camel@Nokia-N900> <53E6586F.7080906@oracle.com> <53E896FE.3030706@zeus.net.au> Message-ID: <53E89874.8060902@zeus.net.au> On 11/08/2014 8:12 PM, Peter Firmstone wrote: > Brian, > > Thanks for picking up on my frustration ;) > > I have something in mind for Serializable2 to address cyclic data > structures and the possibility of independant evolution of super and > child classes, while retaining a relatively clean public api, with one > optional private method. The methods and interfaces proposed are > suitable for any alternative ObjectInput and ObjectOutput implementation. > > An interface exists in Apache River, it's called Startable, it has one > method: > > public void start() throws Exception; > > It's called by a framework to allow an Object to start threads, > publish "this" or throw an exception after construction. The intent > is to allow an object to be immutable with final fields and be > provided with a thread of execution after construction and before > publication. > > Something similar can be used to wire up circular relations, let met > explain: > > Every class that implements Serializable has one thing in common, the > Serialization protocol and every Object instance of a Serializable > class has an arbitrary serial form. > > I propose a final class representing SerialForm for an object, that > cannot be extended, requires privilege to instantiate and also > performs method guard security checks, for all callers with the > exception of a calling class reading or writing its own serial form. > SerialForm needs a parameter field key identity represented by the > calling Class, Sorry, that should read "field name", not "method name". > the method name and the field's Class type, this key would be used for > both writing and retrieving a field entry in SerialForm. SerialForm > will also provide a method to advise if a field key contains a > circular relation, any field entry in SerialForm that would contain a > circular relation is not populated until after construction of the > current object is complete. > > An arbitrary Serializable2 Object instance may be composed of a > hierarchy of classes, each belonging to a separate ProtectionDomain. > > For the following interface: > > public interface Serializable2 { > > void writeObject(SerialForm serial) throws IOException; > > } > > Implementers of Serializable2 must: > > 1. Implement writeObject > 2. Implement a constructor with the signature: (SerialForm serial). > > Implementors that need to check invariants, delay throwing an > Exception, publish "this" or set a circular reference after > construction should: > > 4. Implement: private void readObjectNoData() throws > InvalidObjectException; > > Child class implementations should: > > 5. Call their super class writeObject method and superclass > constructor, but may call any super class constructor or methods. > > Compatibility and Evolution: > > 1. Fields can be included or omitted from SerialForm, by an > implementation, without breaking compatibility, provided a null > reference is accepted during deserialization. > 2. Child classes in a hierarchy; all Serializable2 implementing > superclass constructors have the same signature; the superclass > implementation can be substituted, without breaking child class > deserialization (provided this is the constructor used by the > child class). > 3. There is no serialVersionUID. > 4. Child class Serializable2 implementations can extend a superclass > without a zero arg constructor that doesn't itself implement > Serializable2. > 5. Child classes that do not override writeObject will not be > serialized, so can effectively opt out. > 6. Because implementations are required to implement public methods, > there is no "Magic". > 7. Serializable2 shouldn't extend Serializable, allowing classes to > implement both interfaces for a period of time (for that reason > the signature for readObjectNoData may need to be changed for > Serializable2). > 8. ObjectInputStream and ObjectOutputStream can be extended to > support both implementations for compatibility, however > alternative stream implementations would be preferable for > Serializable2 to avoid Serializable security issues. The new > implementations should be possible to substitute because both > types would use the same Stream Protocol, provided the classes > being deserialized implement Serializable2. > > > My reasoning for retaining readObjectNoData() and for updating field > entry's in SerialForm that contain circular relations after > construction, is: > > 1. An object reference for the object currently being deserialized > can be passed to another object's constructor (via a SerialForm > instance) after the current Object's constructor completes, > allowing safe publication of final field freezes that occur at the > end of construction. > 2. When the Serialization2 Framework becomes aware of an object that > contains a circular relationship while that object is in the > process of being deserialized, the second object will not be > instantiated until after the constructor of the first object in > the relationship completes. Data read in from the stream can be > stored in a SerialForm without requiring object instantation. > 3. After construction completes, the object that has just been > deserialized can retain a copy of its SerialForm and look up the > field containing a circular relationship, the Serialization > framework will update its SerialForm with the new object that > holds a circular relationship, prior to calling readObjectNoData() > on the first object. > 4. If the developer of the implementing class is not aware of the > possibility of a circular relationship, then the worst consequence > is a field will be set to null during construction, "this" will > not escape. > 5. The second Object holding a link to an object that apears earlier > in the stream, may not be aware that the object it holds a > reference to also needs a reference to it. The first object will > not obtain a reference to the second until both Object > constructors have completed. The second object may not need to > implement readObjectNoData(). > 6. readObjectNoData() needs to be called on every class belonging to > a single Object's inheritance hierarchy, when defined, after all > constructors have completed, it should be called in the order of > superclass to child class. > > Thoughts? > > Regards, > > Peter. > > On 10/08/2014 3:20 AM, Brian Goetz wrote: >>> I've noticed there's not much interest in improving Serialization on >>> these lists. This makes me wonder if java Serialization has lost >>> relevance in recent years with the rise of protocol buffers apache >>> thrift and other means of data transfer over byte streams. >> >> I sense your frustration, but I think you may be reaching the wrong >> conclusion. The lack of response is probably not evidence that >> there's no interest in fixing serialization; its that fixing >> serialization, with all the constraints that "fix" entails, is just >> really really hard, and its much easier to complain about it (and >> even say "let's just get rid of it") than to fix it. >> >>> Should Serializable eventually be deprecated? Should Serialization be >>> disabled by default? Should a new mechanism be developed? If a new >>> mechanism is developed, what about circular object relationships? >> >> As I delved into my own explorations of serialization, I started to >> realize why such a horrible approach was the one that was ultimately >> chosen; while serialization is horrible and awful and leaky and >> insecure and complex and brittle, it does address problems like >> cyclic data structures and independent evolution of subclass and >> superclass better than the "clean" models. >> >> My conclusion is, at best, a new mechanism would have to live >> side-by-side with the old one, since it could only handle 95% of the >> cases. It might handle those 95% much better -- more cleanly, >> securely, and allowing easier schema evolution -- but the hard cases >> are still there. Still, reducing the use of the horrible old >> mechanism may still be a worthy goal, even if it can't be killed >> outright. >> > From Alan.Bateman at oracle.com Mon Aug 11 11:21:01 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 11 Aug 2014 12:21:01 +0100 Subject: The future of Serialization In-Reply-To: <1407563776.1841.30.camel@Nokia-N900> References: <1407563776.1841.30.camel@Nokia-N900> Message-ID: <53E8A71D.70407@oracle.com> On 09/08/2014 06:56, Peter Firmstone wrote: > > I've noticed there's not much interest in improving Serialization on > these lists. This makes me wonder if java Serialization has lost > relevance in recent years with the rise of protocol buffers apache > thrift and other means of data transfer over byte streams. > Just to add to Brian's comments, I think part of it is that many people are busy with other things, preparing for JDK 9 for example. So I think there is a lot of support for investigation and proposals that would improve things, it's just that some people are too busy to respond. > > I don't know if isolates will be included with JDK 9 for Jigsaw, or > whether ClassLoaders alone will provide isolation for modules. > > The ability to limit visibility and provide isolation of > implementation classes as well as providing limits on memory and > threads for isolated modules would also improve platform security. > If by "isolates" you mean JSR 121 then I think that would be well beyond the scope, as would resource management. This isn't really the thread to discuss how module boundaries will work but just to say that class loaders and visibility can be weak when it comes to module boundaries. There are other options available, particularly when the ability to extend the access control rules are on the table. So I would suggest not making any assumptions here for now. -Alan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrej.golovnin at gmail.com Mon Aug 11 11:55:47 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Mon, 11 Aug 2014 13:55:47 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> Message-ID: Hi Ot?vio, About the template in Parser.jjt, TokenMgrError.java, etc. I don't know how > can do that. Can anyone help me? > See attached diff for the changes in Parser.jjt and Parser.jj. For the TokenMgrError and ParserException you can just subscribe here: https://java.net/projects/javacc/lists on the dev or users mailing lists and send a message to JavaCC project. I'm sure the developers of JavaCC would help you. Best regards, Andrej Golovnin > About readable of code I just renamed this class to sb instead of buf, > strbuf, etc. Because using StringBuilder beyond be more explicit I can use > char instead of a single String. > > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_3.zip > > > On Mon, Aug 11, 2014 at 7:56 AM, Pavel Rappo > wrote: > >> > In the class >> > src/share/classes/javax/management/openmbean/CompositeType.java you have >> > added the >> > annotation >> @SuppressWarnings("StringConcatenationInsideStringBufferAppend") >> > instead of fixing the concatenation inside the append method. Why? >> >> +1 Moreover, I wonder where this value comes from? I've never seen it >> before. Here are warnings that javac supports: >> >> >> all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs >> >> It doesn't look like one of Eclipse's warnings either. >> >> > And I would like to suggest to drop explicit usage of StringBuilder in >> some >> > methods at all to improve code readability. >> >> Agree. >> >> -Pavel >> >> > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: *http://about.me/otaviojava * > 55 (11) 98255-3513 > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj @@ -420,7 +420,7 @@ t= { jjtn000.name.append(t.image); } ( "." t= - {jjtn000.name.append( "." + t.image); } + {jjtn000.name.append('.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -447,7 +447,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -501,7 +501,7 @@ {jjtn000.address.append(t.image); } ( "!" t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.).append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -527,7 +527,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.').append(t.image); } )* "/" t= /*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt @@ -213,7 +213,7 @@ t= { jjtThis.name.append(t.image); } ( "." t= - {jjtThis.name.append( "." + t.image); } + {jjtThis.name.append('.').append(t.image); } )* } @@ -228,7 +228,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* } @@ -253,7 +253,7 @@ {jjtThis.address.append(t.image); } ( "!" t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* } @@ -267,7 +267,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* "/" t= {jjtThis.mask = t.image; } } From andrej.golovnin at gmail.com Mon Aug 11 11:58:06 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Mon, 11 Aug 2014 13:58:06 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> Message-ID: Hi Ot?vio, please ignore the previous diff. I'm sorry, there was a small mistake. I have attached the corrected version. Best regards, Andrej Golovnin On Mon, Aug 11, 2014 at 1:55 PM, Andrej Golovnin wrote: > Hi Ot?vio, > > About the template in Parser.jjt, TokenMgrError.java, etc. I don't know >> how can do that. Can anyone help me? >> > > See attached diff for the changes in Parser.jjt and Parser.jj. For the > TokenMgrError and ParserException you can just subscribe here: > > https://java.net/projects/javacc/lists > > on the dev or users mailing lists and send a message to JavaCC project. > I'm sure the developers of JavaCC would help you. > > Best regards, > Andrej Golovnin > > > >> About readable of code I just renamed this class to sb instead of buf, >> strbuf, etc. Because using StringBuilder beyond be more explicit I can use >> char instead of a single String. >> >> >> https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_3.zip >> >> >> On Mon, Aug 11, 2014 at 7:56 AM, Pavel Rappo >> wrote: >> >>> > In the class >>> > src/share/classes/javax/management/openmbean/CompositeType.java you >>> have >>> > added the >>> > annotation >>> @SuppressWarnings("StringConcatenationInsideStringBufferAppend") >>> > instead of fixing the concatenation inside the append method. Why? >>> >>> +1 Moreover, I wonder where this value comes from? I've never seen it >>> before. Here are warnings that javac supports: >>> >>> >>> all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs >>> >>> It doesn't look like one of Eclipse's warnings either. >>> >>> > And I would like to suggest to drop explicit usage of StringBuilder in >>> some >>> > methods at all to improve code readability. >>> >>> Agree. >>> >>> -Pavel >>> >>> >> >> >> -- >> Ot?vio Gon?alves de Santana >> >> blog: http://otaviosantana.blogspot.com.br/ >> twitter: http://twitter.com/otaviojava >> site: *http://about.me/otaviojava * >> 55 (11) 98255-3513 >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj @@ -420,7 +420,7 @@ t= { jjtn000.name.append(t.image); } ( "." t= - {jjtn000.name.append( "." + t.image); } + {jjtn000.name.append('.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -447,7 +447,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -501,7 +501,7 @@ {jjtn000.address.append(t.image); } ( "!" t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -527,7 +527,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append('.').append(t.image); } )* "/" t= /*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt @@ -213,7 +213,7 @@ t= { jjtThis.name.append(t.image); } ( "." t= - {jjtThis.name.append( "." + t.image); } + {jjtThis.name.append('.').append(t.image); } )* } @@ -228,7 +228,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* } @@ -253,7 +253,7 @@ {jjtThis.address.append(t.image); } ( "!" t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* } @@ -267,7 +267,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append('.').append(t.image); } )* "/" t= {jjtThis.mask = t.image; } } From peter.firmstone at zeus.net.au Mon Aug 11 12:06:48 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Mon, 11 Aug 2014 22:06:48 +1000 Subject: The future of Serialization In-Reply-To: <53E8A71D.70407@oracle.com> References: <1407563776.1841.30.camel@Nokia-N900> <53E8A71D.70407@oracle.com> Message-ID: <53E8B1D8.1000200@zeus.net.au> Thanks Alan, I can relate to time poverty :) I might be assuming too much, but if there's interest in doing something with Serialization, I'd be interested in learning about plans or difficulties involved in deserialization and modules. It can be a little more difficult to find the correct ClassLoader to resolve classes during deserialization when ClassLoader relationships aren't hierarchial. Object streams can be annotated with module information to assist resolution. On the subject of isolates, I found Ribbons interesting: https://www.cs.purdue.edu/homes/peugster/Ribbons/RJ.pdf https://www.cs.purdue.edu/homes/peugster/Ribbons/ Got any links to info on extending access control rules? Regards, Peter. On 11/08/2014 9:21 PM, Alan Bateman wrote: > On 09/08/2014 06:56, Peter Firmstone wrote: >> >> I've noticed there's not much interest in improving Serialization on >> these lists. This makes me wonder if java Serialization has lost >> relevance in recent years with the rise of protocol buffers apache >> thrift and other means of data transfer over byte streams. >> > Just to add to Brian's comments, I think part of it is that many > people are busy with other things, preparing for JDK 9 for example. So > I think there is a lot of support for investigation and proposals that > would improve things, it's just that some people are too busy to respond. > > >> >> I don't know if isolates will be included with JDK 9 for Jigsaw, or >> whether ClassLoaders alone will provide isolation for modules. >> >> The ability to limit visibility and provide isolation of >> implementation classes as well as providing limits on memory and >> threads for isolated modules would also improve platform security. >> > If by "isolates" you mean JSR 121 then I think that would be well > beyond the scope, as would resource management. This isn't really the > thread to discuss how module boundaries will work but just to say that > class loaders and visibility can be weak when it comes to module > boundaries. There are other options available, particularly when the > ability to extend the access control rules are on the table. So I > would suggest not making any assumptions here for now. > > -Alan. From andrej.golovnin at gmail.com Mon Aug 11 13:12:02 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Mon, 11 Aug 2014 15:12:02 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> Message-ID: Hi, About readable of code I just renamed this class to sb instead of buf, > strbuf, etc. > I doubt that renaming variables does really improve the code readability. And you changed the indentation (take look at other classes too): 239 public String toString() { 240 StringBuilder sb = new StringBuilder(); 241 sb.append("init = ").append(init).append('(').append(init >> 10) 242 .append("K) "); 243 sb.append("used = ").append(used).append('(').append(used >> 10) 244 .append("K) "); 245 sb.append("committed = ").append(committed).append('(') 246 .append(committed >> 10).append("K) "); 247 sb.append("max = ").append(max).append('(').append(max >> 10) 248 .append("K)"); 249 return sb.toString(); 250 } Because using StringBuilder beyond be more explicit I can use char instead > of a single String. > In the most classes I mentioned in my previous mail only the #toString()-methods would be affected by the proposal. And in the most cases, maybe in all cases, the #toString()-methods in this classes exists only to provide nice output. I would not consider them performance-critical. Btw. I see here a nice opportunity to create an RFE for the Javac team. Following code: Object o1 = ...; Object o2 = ...; String s = "abc" + o1 + "c" + o2 + "\n"; should be translated to: String s = new StringBuilder().append("abc").append(o1).append('c').append(o2).append('\n').toString(); instead of: String s = new StringBuilder().append("abc").append(o1).append("c").append(o2).append("\n").toString(); Best regards, Andrej Golovnin > > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_3.zip > > > On Mon, Aug 11, 2014 at 7:56 AM, Pavel Rappo > wrote: > >> > In the class >> > src/share/classes/javax/management/openmbean/CompositeType.java you have >> > added the >> > annotation >> @SuppressWarnings("StringConcatenationInsideStringBufferAppend") >> > instead of fixing the concatenation inside the append method. Why? >> >> +1 Moreover, I wonder where this value comes from? I've never seen it >> before. Here are warnings that javac supports: >> >> >> all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs >> >> It doesn't look like one of Eclipse's warnings either. >> >> > And I would like to suggest to drop explicit usage of StringBuilder in >> some >> > methods at all to improve code readability. >> >> Agree. >> >> -Pavel >> >> > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: *http://about.me/otaviojava * > 55 (11) 98255-3513 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Mon Aug 11 14:14:54 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 11 Aug 2014 22:14:54 +0800 Subject: RFR 8054817: File ccache only recognizes Linux and Solaris defaults Message-ID: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> Please review the fix at http://cr.openjdk.java.net/~weijun/8054817/webrev.00 since we have a new getuid() now for all Unix systems. It does return -1 on Windows, but I keep the osname.startsWith("Windows") check to be exactly consistent with the current behavior. getuid() might return something not -1 one day on Windows. Thanks Max From Alan.Bateman at oracle.com Mon Aug 11 14:18:20 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 11 Aug 2014 15:18:20 +0100 Subject: The future of Serialization In-Reply-To: <53E8B1D8.1000200@zeus.net.au> References: <1407563776.1841.30.camel@Nokia-N900> <53E8A71D.70407@oracle.com> <53E8B1D8.1000200@zeus.net.au> Message-ID: <53E8D0AC.3060108@oracle.com> On 11/08/2014 13:06, Peter Firmstone wrote: > Thanks Alan, I can relate to time poverty :) > > I might be assuming too much, but if there's interest in doing > something with Serialization, I'd be interested in learning about > plans or difficulties involved in deserialization and modules. It can > be a little more difficult to find the correct ClassLoader to resolve > classes during deserialization when ClassLoader relationships aren't > hierarchial. Object streams can be annotated with module information > to assist resolution. The issues around visibility when deserializing are somewhat independent of modules. The usual way to deal with such matters is to override the resolveClass method. Another long standing suggestion is for ObjectInputStream to define a new constructor that takes a class loader to avoid the stack walk to get the user-defined loader. It remains to seen but if we can avoid changing visibility then we don't change the status quo. > : > > Got any links to info on extending access control rules? Not yet, a future JSR will define the standard module system and there will be a corresponding JEP for the implementation. -Alan. From dalibor.topic at oracle.com Fri Aug 8 09:46:05 2014 From: dalibor.topic at oracle.com (dalibor topic) Date: Fri, 08 Aug 2014 11:46:05 +0200 Subject: [7u-dev] Request for approval: 8046343: (smartcardio) CardTerminal.connect('direct') does not work on MacOSX In-Reply-To: <53E3931A.7030706@oracle.com> References: <53E3931A.7030706@oracle.com> Message-ID: <53E49C5D.5070602@oracle.com> Thanks, Ivan - approved for jdk7u-dev. On 07.08.2014 16:54, Ivan Gerasimov wrote: > Hello! > > May I ask for the approval to backport into 7u-dev repo? > The fix is the same as in jdk9/8u modulo lambda, so I'm including the > webrev here. > > Jdk7 webrev: http://cr.openjdk.java.net/~igerasim/8046343/3/webrev/ > > Bug: https://bugs.openjdk.java.net/browse/JDK-8046343 > Jdk9 change: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/89bed86930d8 > Jdk8 change: > http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/725736a9e6d8 > Jdk9 review: > http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html > > Sincerely yours, > Ivan -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Gesch?ftsf?hrer: J?rgen Kunz Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Astrid Kepper, Val Maher Oracle is committed to developing practices and products that help protect the environment From otaviojava at java.net Sun Aug 10 21:33:30 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Sun, 10 Aug 2014 18:33:30 -0300 Subject: Replace concat String to append in StringBuilder parameters Message-ID: *Motivation:* Make another append instead of concat String inside of append parameter in StringBuilder class. To avoid an extra StringBuilder created for the purpose of concatenating. So it will save memory and will faster than concat String. Doing a code to benchMark[1], the result is: Benchmark Mode Samples Mean Mean error Units m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 6317444.705 108673.584 ops/s m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 3354554.435 68353.924 ops/s The webrev of all code is: https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat.zip [1] @State(Scope.Thread) @OutputTimeUnit(TimeUnit.SECONDS) public class StringBuilderConcatBenchMark { private static final String F = "!!!!"; private static final String E = " running in Java "; private static final String D = " in the code "; private static final String C = " to try impact "; private static final String B = " with some text "; private static final String A = "Doing a test"; @GenerateMicroBenchmark public void stringBuilder(BlackHole bh) { bh.consume(createBuilder(A, B, C, D, E, F)); } @GenerateMicroBenchmark public void stringBuilderWithConcat(BlackHole bh) { bh.consume(createBuilderWithConcat(A, B, C, D, E, F)); } private StringBuilder createBuilder(String... values) { StringBuilder text = new StringBuilder(); text.append(values[0]).append(values[1]) .append(values[2]).append(values[3]) .append(values[4]).append(values[5]); return text; } private StringBuilder createBuilderWithConcat(String... values) { StringBuilder text = new StringBuilder(); text.append(values[0] + values[1]) .append(values[2] + values[3]) .append(values[4]+ values[5]); return text; } } -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Sun Aug 10 18:02:01 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append("\n"); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Sun Aug 10 18:02:01 2014 -0300 @@ -79,25 +79,24 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
"); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
" +
-                            (arr[i] == null ?
-                                arr[i] : htmlize(arr[i].toString())) +
-                            "
")
+                            .append(arr[i] == null ?
+                                    arr[i] : htmlize(arr[i].toString()))
+                            .append("
" +
-                            (arr[i] == null ?
-                                arr[i] : htmlize(arr[i].toString())) +
-                            "
")
+                            .append(arr[i] == null ?
+                                    arr[i] : htmlize(arr[i].toString()))
+                            .append("
"); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Sun Aug 10 18:02:01 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append("=").append(map.get(key)).append(","); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append("=").append(entry.getValue()).append(","); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(","); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Sun Aug 10 18:02:01 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(" ").append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(" ").append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(" ").append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(" ").append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Sun Aug 10 18:02:01 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(" "); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Sun Aug 10 18:02:01 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append("|").append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Sun Aug 10 18:02:01 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Sun Aug 10 18:02:01 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Sun Aug 10 18:02:01 2014 -0300 @@ -147,7 +147,7 @@ s.append("Group."); else s.append("User."); - s.append(user + "="); + s.append(user).append("="); Enumeration e = permissions(); while(e.hasMoreElements()) { Permission p = e.nextElement(); diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Sun Aug 10 18:02:01 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append("0").append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Sun Aug 10 18:02:01 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append("\n"); + sb.append("\t").append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Sun Aug 10 18:02:01 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append("\n"); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append("]"); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Sun Aug 10 18:02:01 2014 -0300 @@ -1500,8 +1500,7 @@ if (i != 0) { sb.append(", "); } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); + sb.append(principalInfo[i][0]).append(" ").append("\"").append(principalInfo[i][1]).append("\""); } if (pli.hasNext()) { sb.append(", "); @@ -1776,9 +1775,9 @@ if (principals != null && principals.length > 0) { StringBuilder palBuf = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palBuf.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append("\""); if (i < principals.length-1) palBuf.append(", "); else @@ -1884,7 +1883,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL + " \"").append(suffix).append("\""); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Sun Aug 10 18:02:01 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append("\n"); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append("\n").append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Sun Aug 10 18:02:01 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append("\n"); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append("\n"); + sb.append("revocationReason is ").append(revocationReason).append("\n"); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append("\n"); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append("\n"); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Sun Aug 10 18:02:01 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append("\n"); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Sun Aug 10 18:02:01 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Sun Aug 10 18:02:01 2014 -0300 @@ -268,7 +268,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append("[").append(sniName).append("]"); } return "Extension " + type + ", server_name: " + sb; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Sun Aug 10 18:02:01 2014 -0300 @@ -122,7 +122,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Sun Aug 10 18:02:01 2014 -0300 @@ -113,7 +113,7 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); + sb.append("Extension ").append(type).append(", curve names: {"); boolean first = true; for (int curveId : curveIds) { if (first) { @@ -138,7 +138,7 @@ } else if (curveId == ARBITRARY_CHAR2) { sb.append("arbitrary_explicit_char2_curves"); } else { - sb.append("unknown curve " + curveId); + sb.append("unknown curve ").append(curveId); } } sb.append("}"); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Sun Aug 10 18:02:01 2014 -0300 @@ -676,13 +676,12 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? "X" : " ") + .append(rb.getString("SPACE")); sb.append("|"); } @@ -704,11 +703,11 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append("\n").append(tab).append(rb.getString( + ".Signature.related.entries.")).append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append("\n").append(tab).append(rb.getString( + ".Unsigned.entries.")).append("\n\n"); } } @@ -1605,8 +1604,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Sun Aug 10 18:02:01 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(" ") + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Sun Aug 10 18:02:01 2014 -0300 @@ -1147,7 +1147,7 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append("\"").append(sbuffer.toString()).append("\""); } else { retval.append(sbuffer.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Sun Aug 10 18:02:01 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append("\n"); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append("\n"); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append("\n"); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append("\n"); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Sun Aug 10 18:02:01 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append("\n"); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append("\n"); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Sun Aug 10 18:02:01 2014 -0300 @@ -259,7 +259,7 @@ */ public String toString() { StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); + s.append(policyQualifiers).append(" ]\n"); return s.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Sun Aug 10 18:02:01 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append("\n"); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Sun Aug 10 18:02:01 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append("\n"); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append("\n"); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append("\n"); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append("\n"); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append("\n"); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append("\n"); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append("\n"); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Sun Aug 10 18:02:01 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append("\n"); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Sun Aug 10 18:02:01 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append("\n"); + sb.append(" Subject: ").append(subject.toString()).append("\n"); + sb.append(" Signature Algorithm: ").append(algId.toString()).append("\n"); + sb.append(" Key: ").append(pubKey.toString()).append("\n"); + sb.append(" ").append(interval.toString()).append("\n"); + sb.append(" Issuer: ").append(issuer.toString()).append("\n"); + sb.append(" ").append(serialNum.toString()).append("\n"); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append("\n"); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append("\n"); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append("\n"); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Sun Aug 10 18:02:01 2014 -0300 @@ -465,10 +465,10 @@ private static void appendIfLiteralAddress(String addr, StringBuffer sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(" "); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Sun Aug 10 18:02:01 2014 -0300 @@ -221,14 +221,14 @@ public String toString () { Iterator k = keys(); StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + sbuf.append("{size=").append(asize).append(" nkeys=").append(nkeys).append(" "); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sbuf.append(" {").append(key).append(val == null ? "" : "," + val).append("}"); if (k.hasNext()) { sbuf.append (","); } diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Sun Aug 10 18:02:01 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Sun Aug 10 18:02:00 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(" ").append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Sun Aug 10 18:02:00 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append("L").append(baseElementType.getTypeName()).append(";"); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append("L").append(baseElementType.getTypeName()).append(";"); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Sun Aug 10 18:02:00 2014 -0300 @@ -370,8 +370,7 @@ outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") + ? outBuf.append(",\n").append(getLocalizedMessage("java.launcher.ergo.message2")).append("\n\n") : outBuf.append(".\n\n"); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Sun Aug 10 18:02:00 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append("]"); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Sun Aug 10 18:02:00 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Sun Aug 10 18:02:00 2014 -0300 @@ -1894,7 +1894,7 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(" ").append(e.getMessage()); } buf.append("}"); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Sun Aug 10 18:02:00 2014 -0300 @@ -1239,15 +1239,12 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + buffer.append(indent).append(spring.getClass().getName()) + .append(" ").append(Integer.toHexString(spring.hashCode())).append(" ") + .append(origin).append(", size=").append(spring.getSize()).append(", alignment=") + .append(spring.getAlignment()).append(" prefs=[").append(spring.getMinimumSize(axis)).append(" ") + .append(spring.getPreferredSize(axis)).append(" ").append(spring.getMaximumSize(axis)) + .append(padding).append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Sun Aug 10 18:02:00 2014 -0300 @@ -545,8 +545,7 @@ protected String paramString() { StringBuilder chooserPanelsString = new StringBuilder(""); for (int i=0; i keys = keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); + sb.append(key).append("=").append(get(key)).append(", "); } int length = sb.length(); if (length > 1) { diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Sun Aug 10 18:02:00 2014 -0300 @@ -992,7 +992,7 @@ public synchronized String toString() { StringBuilder sb = new StringBuilder(); if(dirtyComponents != null) - sb.append("" + dirtyComponents); + sb.append("").append(dirtyComponents); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Sun Aug 10 18:02:00 2014 -0300 @@ -294,20 +294,19 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(" ").append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); + sb.append(Integer.toString(childIndices[counter])).append(" "); sb.append("]"); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); + sb.append(children[counter]).append(" "); sb.append("]"); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Sun Aug 10 18:02:00 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append("\n"); + htmlBuf.append("
  • ").append(val).append("\n"); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Sun Aug 10 18:02:00 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append("\n"); + htmlStr.append("
  • ").append(val).append("\n"); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Sun Aug 10 18:02:00 2014 -0300 @@ -2230,8 +2230,8 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append("\t"); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Sun Aug 10 18:02:00 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append("\n"); + htmlStr.append("
  • ").append(label).append("\n"); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Sun Aug 10 18:02:00 2014 -0300 @@ -1160,13 +1160,13 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(" ").append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append("@") + .append(Integer.toString(rows[counter])).append(" "); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(" "); } sb.append("]"); return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Sun Aug 10 18:02:00 2014 -0300 @@ -276,19 +276,19 @@ //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + buf.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { buf.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + buf.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + buf.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + buf.append(", frame length: ").append(frameLength); } return new String(buf); diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Sun Aug 10 18:02:00 2014 -0300 @@ -473,17 +473,17 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length).append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize).append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize).append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize).append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Sun Aug 10 18:02:00 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Sun Aug 10 18:02:00 2014 -0300 @@ -169,7 +169,7 @@ str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Sun Aug 10 18:02:00 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Sun Aug 10 18:02:00 2014 -0300 @@ -141,7 +141,7 @@ public String toString(){ StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - str.append("Content: " + getContent() + "\n"); + str.append("Content: ").append(getContent()).append("\n"); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Sun Aug 10 18:01:59 2014 -0300 @@ -370,18 +370,16 @@ */ public String toString() { StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + buf.append("(CryptoPermission ").append(alg).append(" ").append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + buf.append(" , effective ").append(((RC2ParameterSpec) algParamSpec).getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + buf.append(" , rounds ").append(((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + buf.append(" ").append(exemptionMechanism); } buf.append(")"); return buf.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Sun Aug 10 18:02:00 2014 -0300 @@ -455,7 +455,7 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append("#").append(member); if (objectName == null) name.append("[-]"); else diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Sun Aug 10 18:02:00 2014 -0300 @@ -716,13 +716,12 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); } @@ -734,13 +733,12 @@ for (int i=0; i { /* Serial version */ diff -r dde9f5cfde5f src/share/classes/javax/management/relation/Role.java --- a/src/share/classes/javax/management/relation/Role.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/Role.java Sun Aug 10 18:02:00 2014 -0300 @@ -227,7 +227,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + name + "; role value: "); + result.append("role name: ").append(name).append("; role value: "); for (Iterator objNameIter = objectNameList.iterator(); objNameIter.hasNext();) { ObjectName currObjName = objNameIter.next(); diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Sun Aug 10 18:02:00 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Sun Aug 10 18:02:00 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Sun Aug 10 18:01:59 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append("]"); + sb.append("[position=").append(position).append("]"); + sb.append("[match valid=").append(matchValid).append("]"); + sb.append("[need input=").append(needInput).append("]"); + sb.append("[source closed=").append(sourceClosed).append("]"); + sb.append("[skipped=").append(skipped).append("]"); + sb.append("[group separator=").append(groupSeparator).append("]"); + sb.append("[decimal separator=").append(decimalSeparator).append("]"); + sb.append("[positive prefix=").append(positivePrefix).append("]"); + sb.append("[negative prefix=").append(negativePrefix).append("]"); + sb.append("[positive suffix=").append(positiveSuffix).append("]"); + sb.append("[negative suffix=").append(negativeSuffix).append("]"); + sb.append("[NaN string=").append(nanString).append("]"); + sb.append("[infinity string=").append(infinityString).append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Sun Aug 10 18:01:59 2014 -0300 @@ -1295,9 +1295,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(",").append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Sun Aug 10 18:01:59 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append("|").append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append("|").append(produceEquivalentAlternation(next)); } return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Sun Aug 10 18:01:59 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append("").append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append("").append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Sun Aug 10 18:01:59 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Sun Aug 10 18:01:59 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(" ").append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(" ").append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Sun Aug 10 18:01:59 2014 -0300 @@ -610,8 +610,7 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ").append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Sun Aug 10 18:01:59 2014 -0300 @@ -179,7 +179,7 @@ public String toString() { Enumeration enum_ = elements(); StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); + sb.append(super.toString()).append(" (\n"); while (enum_.hasMoreElements()) { try { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Sun Aug 10 18:01:59 2014 -0300 @@ -291,9 +291,9 @@ StringBuilder palBuf = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palBuf.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append("\""); if (i < principals.length-1) palBuf.append(",\n"); else diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Sun Aug 10 18:01:59 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Sun Aug 10 18:01:59 2014 -0300 @@ -224,17 +224,16 @@ Iterator stringIterator = getCertificates().iterator(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); + sb.append("\n").append(type).append(" Cert Path: length = ").append(getCertificates().size()).append(".\n"); sb.append("[\n"); int i = 1; while (stringIterator.hasNext()) { - sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); + sb.append("==========================================" + "===============Certificate ") + .append(i).append(" start.\n"); Certificate stringCert = stringIterator.next(); sb.append(stringCert.toString()); - sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); + sb.append("\n========================================" + "=================Certificate ") + .append(i).append(" end.\n\n\n"); i++; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -134,7 +134,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); + sb.append(" collection: ").append(coll).append("\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -141,8 +141,8 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); + sb.append(" serverName: ").append(serverName).append("\n"); + sb.append(" port: ").append(port).append("\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append("\n"); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Sun Aug 10 18:01:59 2014 -0300 @@ -109,10 +109,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); + sb.append(" Certification Path: ").append(certPath).append("\n"); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()).append("\n"); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())).append("\n"); + sb.append(" Subject Public Key: ").append(getPublicKey()).append("\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Sun Aug 10 18:01:59 2014 -0300 @@ -150,9 +150,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append("\n"); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append("\n"); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append("\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -698,8 +698,7 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()).append("\n"); } /* now, append initial state information */ @@ -707,29 +706,27 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [").append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)).append("\n"); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)).append("\n"); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled).append("\n"); + sb.append(" Explicit Policy Required: ").append(explicitPolicyRequired).append("\n"); + sb.append(" Policy Mapping Inhibited: ").append(policyMappingInhibited).append("\n"); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited).append("\n"); + sb.append(" Policy Qualifiers Rejected: ").append(policyQualifiersRejected).append("\n"); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ").append(String.valueOf(certSelector)).append("\n"); /* finally, append miscellaneous parameters */ if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); + sb.append(" Certification Path Checkers: [").append(certPathCheckers.toString()).append("]\n"); if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); + sb.append(" CertStores: [").append(certStores.toString()).append("]\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Sun Aug 10 18:01:59 2014 -0300 @@ -163,9 +163,8 @@ HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); + sb.append(" qualifierID: ").append(mId).append("\n"); + sb.append(" qualifier: ").append(mData == null ? "null" : enc.encodeBuffer(mData)).append("\n"); sb.append("]"); pqiString = sb.toString(); return pqiString; diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Sun Aug 10 18:01:59 2014 -0300 @@ -320,14 +320,13 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()).append("\n"); + sb.append(" Trusted CA Issuer Name: ").append(String.valueOf(caName)).append("\n"); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()).append("\n"); } if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + sb.append(" Name Constraints: ").append(nc.toString()).append("\n"); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Sun Aug 10 18:01:59 2014 -0300 @@ -572,16 +572,16 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append("\n"); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append("\n"); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append("\n"); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append("\n"); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); + sb.append(" Certificate being checked: ").append(certChecking).append("\n"); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Sun Aug 10 18:01:59 2014 -0300 @@ -1814,69 +1814,62 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()).append("\n"); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()).append("\n"); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append("\n"); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append("\n"); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)) + .append("\n"); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ").append(list.get(1)).append("\n"); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ").append(enc.encodeBuffer(subjectKeyID)).append("\n"); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ").append(enc.encodeBuffer(authorityKeyID)).append("\n"); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ").append(certificateValid.toString()).append("\n"); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ").append(privateKeyValid.toString()).append("\n"); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ").append(subjectPublicKeyAlgID.toString()).append("\n"); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ").append(subjectPublicKey.toString()).append("\n"); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)).append("\n"); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ").append(keyPurposeSet.toString()).append("\n"); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append("\n"); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append("\n"); } } sb.append("]"); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Sun Aug 10 18:01:59 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Sun Aug 10 18:01:59 2014 -0300 @@ -238,11 +238,10 @@ */ public String toString() { StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); + buf.append("init = ").append(init).append("(").append(init >> 10).append("K) "); + buf.append("used = ").append(used).append("(").append(used >> 10).append("K) "); + buf.append("committed = ").append(committed).append("(").append(committed >> 10).append("K) "); + buf.append("max = ").append(max).append("(").append(max >> 10).append("K)"); return buf.toString(); } diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Sun Aug 10 18:01:59 2014 -0300 @@ -583,11 +583,11 @@ " Id=" + getThreadId() + " " + getThreadState()); if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +599,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +622,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +634,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -138,7 +138,7 @@ + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + sb.append(LINE_SEP).append("l:").append(LINE_SEP).append(" ").append(this.l); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Sun Aug 10 18:01:59 2014 -0300 @@ -269,7 +269,7 @@ + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + sb.append(LINE_SEP).append("l:").append(LINE_SEP).append(" ").append(this.l); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -140,7 +140,7 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP).append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -239,10 +239,9 @@ protected String engineToString() { StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); + sb.append("MD: ").append(mdName).append("\n"); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()).append("\n"); + sb.append("PSource: PSpecified ").append(p.length == 0 ? "" : Debug.toHexString(new BigInteger(p))).append("\n"); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Sun Aug 10 18:01:59 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Sun Aug 10 18:01:59 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(":"); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Sun Aug 10 18:01:59 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Sun Aug 10 18:01:59 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append(".").append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append(".").append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append(".").append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append(".").append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Sun Aug 10 18:01:59 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Sun Aug 10 18:01:59 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append("\n"); + sb.append("msgMaxSize : ").append(msgMaxSize).append("\n"); + sb.append("msgFlags : ").append(msgFlags).append("\n"); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append("\n"); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Sun Aug 10 18:01:59 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Sun Aug 10 18:01:59 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(","); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Sun Aug 10 18:01:59 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(" "); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(" "); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Sun Aug 10 18:01:59 2014 -0300 @@ -235,14 +235,14 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(" ").append(nodeName).append("=\"").append(att.getNodeValue()).append("\""); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append(">").append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Sun Aug 10 18:01:59 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(" "); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Sun Aug 10 18:01:59 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(","); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append("+"); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Sun Aug 10 18:01:59 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append("0").append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Sun Aug 10 18:01:59 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append("0").append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Sun Aug 10 18:01:59 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Sun Aug 10 18:01:59 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Sun Aug 10 18:01:59 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Sun Aug 10 18:01:59 2014 -0300 @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append("").append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append("").append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append("").append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append("").append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append("").append(val); i += 8; break; } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Sun Aug 10 18:01:59 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(";"); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(";"); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Sun Aug 10 18:01:59 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append("'"); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { From claes.redestad at oracle.com Sun Aug 10 23:03:32 2014 From: claes.redestad at oracle.com (Claes Redestad) Date: Mon, 11 Aug 2014 01:03:32 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: Message-ID: <53E7FA44.9050207@oracle.com> +1 Some suggestions (mostly nits): - in places like src/share/classes/java/util/regex/Pattern.java you introducesingle-char strings which might use a char instead: - result.append("|"+next); + result.append('|').append(next); - in places like src/share/classes/sun/security/provider/PolicyFile.java you end up with a sequence of String literal appends which could be merged into one: - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); + sb.append(principalInfo[i][0]).append(" \"") + .append(principalInfo[i][1]).append('"'); - in some places like src/share/classes/java/text/ChoiceFormat.java you end up doing append(""). I guess the empty string concatenation was used as a form of primitive-to-string coercion and was probably always redundant already, but care needs to be taken that doing the append directly behave as intended. I think it should be safe to just remove the empty string append in most cases: - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); Thanks! /Claes On 2014-08-10 23:33, Ot?vio Gon?alves de Santana wrote: > *Motivation:* Make another append instead of concat String inside of append > parameter in StringBuilder class. To avoid an extra StringBuilder created > for the purpose of concatenating. So it will save memory and will faster > than concat String. > Doing a code to benchMark[1], the result is: > > Benchmark Mode Samples > Mean Mean error Units > m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 > 6317444.705 108673.584 ops/s > m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 > 3354554.435 68353.924 ops/s > > The webrev of all code is: > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat.zip > > > [1] > > @State(Scope.Thread) > @OutputTimeUnit(TimeUnit.SECONDS) > public class StringBuilderConcatBenchMark { > > > private static final String F = "!!!!"; > private static final String E = " running in Java "; > private static final String D = " in the code "; > private static final String C = " to try impact "; > private static final String B = " with some text "; > private static final String A = "Doing a test"; > > @GenerateMicroBenchmark > public void stringBuilder(BlackHole bh) { > bh.consume(createBuilder(A, B, C, D, E, F)); > } > > @GenerateMicroBenchmark > public void stringBuilderWithConcat(BlackHole bh) { > bh.consume(createBuilderWithConcat(A, B, C, D, E, F)); > } > > private StringBuilder createBuilder(String... values) { > StringBuilder text = new StringBuilder(); > text.append(values[0]).append(values[1]) > .append(values[2]).append(values[3]) > .append(values[4]).append(values[5]); > return text; > } > private StringBuilder createBuilderWithConcat(String... values) { > StringBuilder text = new StringBuilder(); > text.append(values[0] + values[1]) > .append(values[2] + values[3]) > .append(values[4]+ values[5]); > return text; > } > } > From otaviojava at java.net Mon Aug 11 03:29:39 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Mon, 11 Aug 2014 00:29:39 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <53E7FA44.9050207@oracle.com> References: <53E7FA44.9050207@oracle.com> Message-ID: Done. https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_2.zip obs: stay the 2 chars to better performance. On Sun, Aug 10, 2014 at 8:03 PM, Claes Redestad wrote: > +1 > > Some suggestions (mostly nits): > > - in places like src/share/classes/java/util/regex/Pattern.java you > introducesingle-char > strings which might use a char instead: > > - result.append("|"+next); > + result.append('|').append(next); > > - in places like src/share/classes/sun/security/provider/PolicyFile.java > you end up with a sequence of String literal appends which could be > merged into one: > > - sb.append(principalInfo[i][0] + " " + > - "\"" + principalInfo[i][1] + "\""); > + sb.append(principalInfo[i][0]).append(" \"") > + .append(principalInfo[i][1]).append('"'); > > - in some places like src/share/classes/java/text/ChoiceFormat.java > you end up doing append(""). I guess the empty string concatenation was > used as a form > of primitive-to-string coercion and was probably always redundant > already, but care needs > to be taken that doing the append directly behave as intended. > > I think it should be safe to just remove the empty string append in most > cases: > > - result.append(""+choiceLimits[i]); > + result.append(choiceLimits[i]); > > Thanks! > > /Claes > > On 2014-08-10 23:33, Ot?vio Gon?alves de Santana wrote: > >> *Motivation:* Make another append instead of concat String inside of >> append >> >> parameter in StringBuilder class. To avoid an extra StringBuilder created >> for the purpose of concatenating. So it will save memory and will faster >> than concat String. >> Doing a code to benchMark[1], the result is: >> >> Benchmark Mode Samples >> Mean Mean error Units >> m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 >> 6317444.705 108673.584 ops/s >> m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 >> 3354554.435 68353.924 ops/s >> >> The webrev of all code is: >> https://dl.dropboxusercontent.com/u/16109193/open_jdk/ >> string_builder_concat.zip >> > builder_concat.zip> >> >> [1] >> >> @State(Scope.Thread) >> @OutputTimeUnit(TimeUnit.SECONDS) >> public class StringBuilderConcatBenchMark { >> >> >> private static final String F = "!!!!"; >> private static final String E = " running in Java "; >> private static final String D = " in the code "; >> private static final String C = " to try impact "; >> private static final String B = " with some text "; >> private static final String A = "Doing a test"; >> >> @GenerateMicroBenchmark >> public void stringBuilder(BlackHole bh) { >> bh.consume(createBuilder(A, B, C, D, E, F)); >> } >> >> @GenerateMicroBenchmark >> public void stringBuilderWithConcat(BlackHole bh) { >> bh.consume(createBuilderWithConcat(A, B, C, D, E, F)); >> } >> >> private StringBuilder createBuilder(String... values) { >> StringBuilder text = new StringBuilder(); >> text.append(values[0]).append(values[1]) >> .append(values[2]).append(values[3]) >> .append(values[4]).append(values[5]); >> return text; >> } >> private StringBuilder createBuilderWithConcat(String... values) { >> StringBuilder text = new StringBuilder(); >> text.append(values[0] + values[1]) >> .append(values[2] + values[3]) >> .append(values[4]+ values[5]); >> return text; >> } >> } >> >> > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Sun Aug 10 22:07:00 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append('\n'); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Sun Aug 10 22:07:00 2014 -0300 @@ -79,25 +79,24 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
    "); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    "); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Sun Aug 10 22:07:00 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append('=').append(map.get(key)).append(','); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append('=').append(entry.getValue()).append(','); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(','); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Sun Aug 10 22:07:00 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(' ').append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(' ').append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(' ').append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(' ').append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Sun Aug 10 22:07:00 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(' '); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Sun Aug 10 22:07:00 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append('|').append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Sun Aug 10 22:07:00 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Sun Aug 10 22:07:00 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Sun Aug 10 22:07:00 2014 -0300 @@ -147,13 +147,13 @@ s.append("Group."); else s.append("User."); - s.append(user + "="); + s.append(user).append('='); Enumeration e = permissions(); while(e.hasMoreElements()) { Permission p = e.nextElement(); s.append(p); if (e.hasMoreElements()) - s.append(","); + s.append(','); } return new String(s); } diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Sun Aug 10 22:07:00 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Sun Aug 10 22:07:00 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append('\n'); + sb.append('\t').append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Sun Aug 10 22:07:00 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append('\n'); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Sun Aug 10 22:07:00 2014 -0300 @@ -1500,8 +1500,7 @@ if (i != 0) { sb.append(", "); } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); + sb.append(principalInfo[i][0]).append(' ').append('\"').append(principalInfo[i][1]).append('\"'); } if (pli.hasNext()) { sb.append(", "); @@ -1776,13 +1775,13 @@ if (principals != null && principals.length > 0) { StringBuilder palBuf = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palBuf.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('\"'); if (i < principals.length-1) palBuf.append(", "); else - palBuf.append(")"); + palBuf.append(')'); } pals = palBuf.toString(); } @@ -1884,7 +1883,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('\"'); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Sun Aug 10 22:07:00 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append('\n'); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append('\n').append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Sun Aug 10 22:07:00 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append('\n'); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append('\n'); + sb.append("revocationReason is ").append(revocationReason).append('\n'); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append('\n'); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Sun Aug 10 22:07:00 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Sun Aug 10 22:07:00 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Sun Aug 10 22:07:00 2014 -0300 @@ -268,7 +268,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append('[').append(sniName).append(']'); } return "Extension " + type + ", server_name: " + sb; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Sun Aug 10 22:07:00 2014 -0300 @@ -122,7 +122,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Sun Aug 10 22:07:00 2014 -0300 @@ -113,7 +113,7 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); + sb.append("Extension ").append(type).append(", curve names: {"); boolean first = true; for (int curveId : curveIds) { if (first) { @@ -138,7 +138,7 @@ } else if (curveId == ARBITRARY_CHAR2) { sb.append("arbitrary_explicit_char2_curves"); } else { - sb.append("unknown curve " + curveId); + sb.append("unknown curve ").append(curveId); } } sb.append("}"); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Sun Aug 10 22:07:00 2014 -0300 @@ -676,14 +676,13 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); - sb.append("|"); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? 'X' : ' ') + .append(rb.getString("SPACE")); + sb.append('|'); } // When -certs provided, display info has extra empty @@ -704,11 +703,11 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append('\n').append(tab).append(rb.getString( + ".Signature.related.entries.")).append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append('\n').append(tab).append(rb.getString( + ".Unsigned.entries.")).append("\n\n"); } } @@ -1605,8 +1604,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Sun Aug 10 22:07:00 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(' ') + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Sun Aug 10 22:07:00 2014 -0300 @@ -1147,7 +1147,7 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append('\"').append(sbuffer.toString()).append('\"'); } else { retval.append(sbuffer.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Sun Aug 10 22:07:00 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append('\n'); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append('\n'); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append('\n'); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Sun Aug 10 22:07:00 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append('\n'); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append('\n'); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Sun Aug 10 22:07:00 2014 -0300 @@ -259,7 +259,7 @@ */ public String toString() { StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); + s.append(policyQualifiers).append(" ]\n"); return s.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Sun Aug 10 22:07:00 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Sun Aug 10 22:07:00 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append("\n"); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append('\n'); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append('\n'); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append('\n'); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append('\n'); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append('\n'); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Sun Aug 10 22:07:00 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append('\n'); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Sun Aug 10 22:07:00 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append('\n'); + sb.append(" Subject: ").append(subject.toString()).append('\n'); + sb.append(" Signature Algorithm: ").append(algId.toString()).append('\n'); + sb.append(" Key: ").append(pubKey.toString()).append('\n'); + sb.append(" ").append(interval.toString()).append('\n'); + sb.append(" Issuer: ").append(issuer.toString()).append('\n'); + sb.append(" ").append(serialNum.toString()).append('\n'); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append('\n'); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append('\n'); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Sun Aug 10 22:07:00 2014 -0300 @@ -465,10 +465,10 @@ private static void appendIfLiteralAddress(String addr, StringBuffer sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(' '); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Sun Aug 10 22:07:00 2014 -0300 @@ -221,16 +221,16 @@ public String toString () { Iterator k = keys(); StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + sbuf.append("{size=").append(asize).append(" nkeys=").append(nkeys).append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sbuf.append(" {").append(key).append(val == null ? "" : "," + val).append('}'); if (k.hasNext()) { - sbuf.append (","); + sbuf.append (','); } } sbuf.append (" }"); diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Sun Aug 10 22:07:00 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Sun Aug 10 22:07:00 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(' ').append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Sun Aug 10 22:07:00 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Sun Aug 10 22:07:00 2014 -0300 @@ -370,8 +370,7 @@ outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") + ? outBuf.append(",\n").append(getLocalizedMessage("java.launcher.ergo.message2")).append("\n\n") : outBuf.append(".\n\n"); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Sun Aug 10 22:06:59 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append(']'); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Sun Aug 10 22:06:59 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Sun Aug 10 22:06:59 2014 -0300 @@ -1894,9 +1894,9 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(' ').append(e.getMessage()); } - buf.append("}"); + buf.append('}'); return buf; } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Sun Aug 10 22:06:59 2014 -0300 @@ -1239,15 +1239,12 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + buffer.append(indent).append(spring.getClass().getName()) + .append(' ').append(Integer.toHexString(spring.hashCode())).append(' ') + .append(origin).append(", size=").append(spring.getSize()).append(", alignment=") + .append(spring.getAlignment()).append(" prefs=[").append(spring.getMinimumSize(axis)).append(' ') + .append(spring.getPreferredSize(axis)).append(' ').append(spring.getMaximumSize(axis)) + .append(padding).append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Sun Aug 10 22:06:59 2014 -0300 @@ -545,8 +545,7 @@ protected String paramString() { StringBuilder chooserPanelsString = new StringBuilder(""); for (int i=0; i keys = keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); + sb.append(key).append('=').append(get(key)).append(", "); } int length = sb.length(); if (length > 1) { sb.delete(length-2, length); } - sb.append("}"); + sb.append('}'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Sun Aug 10 22:06:59 2014 -0300 @@ -992,7 +992,7 @@ public synchronized String toString() { StringBuilder sb = new StringBuilder(); if(dirtyComponents != null) - sb.append("" + dirtyComponents); + sb.append(dirtyComponents); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Sun Aug 10 22:06:59 2014 -0300 @@ -294,21 +294,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(" ").append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); - sb.append("]"); + sb.append(Integer.toString(childIndices[counter])).append(' '); + sb.append(']'); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); - sb.append("]"); + sb.append(children[counter]).append(' '); + sb.append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Sun Aug 10 22:06:59 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append('\n'); + htmlBuf.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Sun Aug 10 22:06:59 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append('\n'); + htmlStr.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Sun Aug 10 22:06:59 2014 -0300 @@ -2230,11 +2230,11 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append('\t'); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab - plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); + plainStr.deleteCharAt(plainStr.length() - 1).append('\t'); htmlStr.append("\n"); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Sun Aug 10 22:06:59 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append('\n'); + htmlStr.append("
  • ").append(label).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Sun Aug 10 22:06:59 2014 -0300 @@ -1160,15 +1160,15 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(' ').append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append('@') + .append(Integer.toString(rows[counter])).append(' '); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(' '); } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Sun Aug 10 22:06:59 2014 -0300 @@ -276,19 +276,19 @@ //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + buf.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { buf.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + buf.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + buf.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + buf.append(", frame length: ").append(frameLength); } return new String(buf); diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Sun Aug 10 22:06:59 2014 -0300 @@ -473,17 +473,17 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length).append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize).append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize).append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize).append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Sun Aug 10 22:06:59 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Sun Aug 10 22:06:59 2014 -0300 @@ -165,11 +165,11 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n"); - + StringBuilder str = new StringBuilder(); + str.append("Address Type: ").append(addrType).append('\n'); str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Sun Aug 10 22:06:59 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Sun Aug 10 22:06:59 2014 -0300 @@ -139,9 +139,9 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - - str.append("Content: " + getContent() + "\n"); + StringBuilder str = new StringBuilder(); + str.append("Type: ").append(addrType).append('\n'); + str.append("Content: ").append(getContent()).append('\n'); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Sun Aug 10 22:06:59 2014 -0300 @@ -370,20 +370,18 @@ */ public String toString() { StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + buf.append("(CryptoPermission ").append(alg).append(' ').append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + buf.append(" , effective ").append(((RC2ParameterSpec) algParamSpec).getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + buf.append(" , rounds ").append(((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + buf.append(' ').append(exemptionMechanism); } - buf.append(")"); + buf.append(')'); return buf.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Sun Aug 10 22:06:59 2014 -0300 @@ -455,11 +455,11 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append('#').append(member); if (objectName == null) name.append("[-]"); else - name.append("[").append(objectName.getCanonicalName()).append("]"); + name.append('[').append(objectName.getCanonicalName()).append(']'); /* In the interests of legibility for Permission.toString(), we transform the empty string into "*". */ diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Sun Aug 10 22:06:59 2014 -0300 @@ -716,15 +716,14 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { - retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); + retStr.append("\nMBEAN DESCRIPTOR: \t is invalid"); } retStr.append("\nATTRIBUTES"); @@ -734,13 +733,12 @@ for (int i=0; i { /* Serial version */ diff -r dde9f5cfde5f src/share/classes/javax/management/relation/Role.java --- a/src/share/classes/javax/management/relation/Role.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/Role.java Sun Aug 10 22:06:59 2014 -0300 @@ -227,7 +227,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + name + "; role value: "); + result.append("role name: ").append(name).append("; role value: "); for (Iterator objNameIter = objectNameList.iterator(); objNameIter.hasNext();) { ObjectName currObjName = objNameIter.next(); diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Sun Aug 10 22:06:59 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Sun Aug 10 22:06:59 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Sun Aug 10 22:06:59 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append(']'); + sb.append("[position=").append(position).append(']'); + sb.append("[match valid=").append(matchValid).append(']'); + sb.append("[need input=").append(needInput).append(']'); + sb.append("[source closed=").append(sourceClosed).append(']'); + sb.append("[skipped=").append(skipped).append(']'); + sb.append("[group separator=").append(groupSeparator).append(']'); + sb.append("[decimal separator=").append(decimalSeparator).append(']'); + sb.append("[positive prefix=").append(positivePrefix).append(']'); + sb.append("[negative prefix=").append(negativePrefix).append(']'); + sb.append("[positive suffix=").append(positiveSuffix).append(']'); + sb.append("[negative suffix=").append(negativeSuffix).append(']'); + sb.append("[NaN string=").append(nanString).append(']'); + sb.append("[infinity string=").append(infinityString).append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Sun Aug 10 22:06:59 2014 -0300 @@ -1295,14 +1295,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(',').append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Sun Aug 10 22:06:59 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append('|').append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append('|').append(produceEquivalentAlternation(next)); } return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Sun Aug 10 22:06:58 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Sun Aug 10 22:06:58 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Sun Aug 10 22:06:58 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(' ').append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(' ').append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Sun Aug 10 22:06:58 2014 -0300 @@ -610,8 +610,7 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ").append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Sun Aug 10 22:06:58 2014 -0300 @@ -179,12 +179,12 @@ public String toString() { Enumeration enum_ = elements(); StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); + sb.append(super.toString()).append(" (\n"); while (enum_.hasMoreElements()) { try { - sb.append(" "); + sb.append(' '); sb.append(enum_.nextElement().toString()); - sb.append("\n"); + sb.append('\n'); } catch (NoSuchElementException e){ // ignore } diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Sun Aug 10 22:06:58 2014 -0300 @@ -291,9 +291,9 @@ StringBuilder palBuf = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palBuf.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('\"'); if (i < principals.length-1) palBuf.append(",\n"); else diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Sun Aug 10 22:06:58 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Sun Aug 10 22:06:58 2014 -0300 @@ -224,17 +224,16 @@ Iterator stringIterator = getCertificates().iterator(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); + sb.append("\n").append(type).append(" Cert Path: length = ").append(getCertificates().size()).append(".\n"); sb.append("[\n"); int i = 1; while (stringIterator.hasNext()) { - sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); + sb.append("==========================================" + "===============Certificate ") + .append(i).append(" start.\n"); Certificate stringCert = stringIterator.next(); sb.append(stringCert.toString()); - sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); + sb.append("\n========================================" + "=================Certificate ") + .append(i).append(" end.\n\n\n"); i++; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -134,8 +134,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); - sb.append("]"); + sb.append(" collection: ").append(coll).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -141,9 +141,9 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); - sb.append("]"); + sb.append(" serverName: ").append(serverName).append("\n"); + sb.append(" port: ").append(port).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Sun Aug 10 22:06:58 2014 -0300 @@ -109,11 +109,11 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); - sb.append("]"); + sb.append(" Certification Path: ").append(certPath).append('\n'); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())).append('\n'); + sb.append(" Subject Public Key: ").append(getPublicKey()).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Sun Aug 10 22:06:58 2014 -0300 @@ -150,10 +150,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); - sb.append("]"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append('\n'); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -698,8 +698,7 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()).append('\n'); } /* now, append initial state information */ @@ -707,30 +706,28 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [").append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)).append('\n'); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)).append('\n'); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled).append('\n'); + sb.append(" Explicit Policy Required: ").append(explicitPolicyRequired).append('\n'); + sb.append(" Policy Mapping Inhibited: ").append(policyMappingInhibited).append('\n'); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited).append('\n'); + sb.append(" Policy Qualifiers Rejected: ").append(policyQualifiersRejected).append('\n'); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ").append(String.valueOf(certSelector)).append('\n'); /* finally, append miscellaneous parameters */ if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); + sb.append(" Certification Path Checkers: [").append(certPathCheckers.toString()).append("]\n"); if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); - sb.append("]"); + sb.append(" CertStores: [").append(certStores.toString()).append("]\n"); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Sun Aug 10 22:06:58 2014 -0300 @@ -163,10 +163,9 @@ HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); - sb.append("]"); + sb.append(" qualifierID: ").append(mId).append('\n'); + sb.append(" qualifier: ").append(mData == null ? "null" : enc.encodeBuffer(mData)).append('\n'); + sb.append(']'); pqiString = sb.toString(); return pqiString; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Sun Aug 10 22:06:58 2014 -0300 @@ -320,14 +320,13 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()).append('\n'); + sb.append(" Trusted CA Issuer Name: ").append(String.valueOf(caName)).append('\n'); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()).append('\n'); } if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + sb.append(" Name Constraints: ").append(nc.toString()).append('\n'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Sun Aug 10 22:06:58 2014 -0300 @@ -572,17 +572,17 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append('\n'); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append('\n'); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append('\n'); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); - sb.append("]"); + sb.append(" Certificate being checked: ").append(certChecking).append('\n'); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Sun Aug 10 22:06:58 2014 -0300 @@ -1814,72 +1814,65 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()).append('\n'); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()).append('\n'); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append('\n'); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append('\n'); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)) + .append('\n'); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ").append(list.get(1)).append('\n'); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ").append(enc.encodeBuffer(subjectKeyID)).append('\n'); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ").append(enc.encodeBuffer(authorityKeyID)).append('\n'); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ").append(certificateValid.toString()).append('\n'); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ").append(privateKeyValid.toString()).append('\n'); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ").append(subjectPublicKeyAlgID.toString()).append('\n'); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ").append(subjectPublicKey.toString()).append('\n'); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)).append('\n'); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ").append(keyPurposeSet.toString()).append('\n'); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append('\n'); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Sun Aug 10 22:06:58 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Sun Aug 10 22:06:58 2014 -0300 @@ -238,11 +238,10 @@ */ public String toString() { StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); + buf.append("init = ").append(init).append('(').append(init >> 10).append("K) "); + buf.append("used = ").append(used).append('(').append(used >> 10).append("K) "); + buf.append("committed = ").append(committed).append('(').append(committed >> 10).append("K) "); + buf.append("max = ").append(max).append('(').append(max >> 10).append("K)"); return buf.toString(); } diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Sun Aug 10 22:06:58 2014 -0300 @@ -579,15 +579,17 @@ * @return a string representation of this thread info. */ public String toString() { - StringBuilder sb = new StringBuilder("\"" + getThreadName() + "\"" + - " Id=" + getThreadId() + " " + - getThreadState()); + StringBuilder sb = new StringBuilder(); + sb.append('\"').append(getThreadName()).append('\"') + .append(" Id=").append(getThreadId()).append(' ') + .append(getThreadState()); + if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +601,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +624,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +636,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -138,7 +138,7 @@ + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + sb.append(LINE_SEP).append("l:").append(LINE_SEP).append(" ").append(this.l); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Sun Aug 10 22:06:58 2014 -0300 @@ -269,7 +269,7 @@ + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + sb.append(LINE_SEP).append("l:").append(LINE_SEP).append(" ").append(this.l); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -140,7 +140,7 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP).append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -239,10 +239,9 @@ protected String engineToString() { StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); + sb.append("MD: ").append(mdName).append('\n'); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()).append('\n'); + sb.append("PSource: PSpecified ").append(p.length == 0 ? "" : Debug.toHexString(new BigInteger(p))).append('\n'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Sun Aug 10 22:06:58 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Sun Aug 10 22:06:58 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(':'); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Sun Aug 10 22:06:58 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Sun Aug 10 22:06:58 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append('.').append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Sun Aug 10 22:06:58 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Sun Aug 10 22:06:58 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append('\n'); + sb.append("msgMaxSize : ").append(msgMaxSize).append('\n'); + sb.append("msgFlags : ").append(msgFlags).append('\n'); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append('\n'); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Sun Aug 10 22:06:58 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Sun Aug 10 22:06:58 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(','); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Sun Aug 10 22:06:58 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(' '); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(' '); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Sun Aug 10 22:06:58 2014 -0300 @@ -235,14 +235,14 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(' ').append(nodeName).append("=\"").append(att.getNodeValue()).append('\"'); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append('>').append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Sun Aug 10 22:06:58 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(' '); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Sun Aug 10 22:06:58 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(','); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append('+'); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Sun Aug 10 22:06:58 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Sun Aug 10 22:06:58 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Sun Aug 10 22:06:58 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Sun Aug 10 22:06:58 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Sun Aug 10 22:06:58 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Sun Aug 10 22:06:58 2014 -0300 @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } @@ -425,7 +425,7 @@ } } } - result.append("}"); + result.append('}'); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Sun Aug 10 22:06:58 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(';'); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Sun Aug 10 22:06:58 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append('\''); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { From pavel.rappo at oracle.com Mon Aug 11 10:56:05 2014 From: pavel.rappo at oracle.com (Pavel Rappo) Date: Mon, 11 Aug 2014 11:56:05 +0100 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> Message-ID: <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> > In the class > src/share/classes/javax/management/openmbean/CompositeType.java you have > added the > annotation @SuppressWarnings("StringConcatenationInsideStringBufferAppend") > instead of fixing the concatenation inside the append method. Why? +1 Moreover, I wonder where this value comes from? I've never seen it before. Here are warnings that javac supports: all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs It doesn't look like one of Eclipse's warnings either. > And I would like to suggest to drop explicit usage of StringBuilder in some > methods at all to improve code readability. Agree. -Pavel From otaviojava at java.net Mon Aug 11 11:25:41 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Mon, 11 Aug 2014 08:25:41 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> Message-ID: Really thank you everyone. About Warning, sorry my mistake, this warning is from IntelliJ. Removed long lines, replace StringBuffer to StringBuilder and I did the optimizations. About the template in Parser.jjt, TokenMgrError.java, etc. I don't know how can do that. Can anyone help me? About readable of code I just renamed this class to sb instead of buf, strbuf, etc. Because using StringBuilder beyond be more explicit I can use char instead of a single String. https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_3.zip On Mon, Aug 11, 2014 at 7:56 AM, Pavel Rappo wrote: > > In the class > > src/share/classes/javax/management/openmbean/CompositeType.java you have > > added the > > annotation > @SuppressWarnings("StringConcatenationInsideStringBufferAppend") > > instead of fixing the concatenation inside the append method. Why? > > +1 Moreover, I wonder where this value comes from? I've never seen it > before. Here are warnings that javac supports: > > > all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs > > It doesn't look like one of Eclipse's warnings either. > > > And I would like to suggest to drop explicit usage of StringBuilder in > some > > methods at all to improve code readability. > > Agree. > > -Pavel > > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Mon Aug 11 08:18:34 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append('\n'); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Mon Aug 11 08:18:34 2014 -0300 @@ -79,25 +79,25 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
    "); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    "); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Mon Aug 11 08:18:34 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append('=').append(map.get(key)).append(','); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append('=').append(entry.getValue()).append(','); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(','); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Mon Aug 11 08:18:34 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(' ').append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(' ').append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(' ').append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(' ').append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Mon Aug 11 08:18:34 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(' '); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Mon Aug 11 08:18:34 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append('|').append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Mon Aug 11 08:18:34 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Mon Aug 11 08:18:34 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Mon Aug 11 08:18:34 2014 -0300 @@ -147,13 +147,13 @@ s.append("Group."); else s.append("User."); - s.append(user + "="); + s.append(user).append('='); Enumeration e = permissions(); while(e.hasMoreElements()) { Permission p = e.nextElement(); s.append(p); if (e.hasMoreElements()) - s.append(","); + s.append(','); } return new String(s); } diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Mon Aug 11 08:18:34 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Mon Aug 11 08:18:34 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append('\n'); + sb.append('\t').append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Mon Aug 11 08:18:34 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append('\n'); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Mon Aug 11 08:18:34 2014 -0300 @@ -1500,8 +1500,8 @@ if (i != 0) { sb.append(", "); } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); + sb.append(principalInfo[i][0]).append(' ').append('"') + .append(principalInfo[i][1]).append('"'); } if (pli.hasNext()) { sb.append(", "); @@ -1774,17 +1774,17 @@ Principal[] principals = pd.getPrincipals(); String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palSB = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palSB.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); if (i < principals.length-1) - palBuf.append(", "); + palSB.append(", "); else - palBuf.append(")"); + palSB.append(')'); } - pals = palBuf.toString(); + pals = palSB.toString(); } return "PD CodeSource: " + pd.getCodeSource() @@ -1884,7 +1884,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('"'); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Mon Aug 11 08:18:34 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append('\n'); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append('\n').append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Mon Aug 11 08:18:34 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append('\n'); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append('\n'); + sb.append("revocationReason is ").append(revocationReason).append('\n'); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append('\n'); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Mon Aug 11 08:18:34 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Mon Aug 11 08:18:34 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Mon Aug 11 08:18:34 2014 -0300 @@ -267,11 +267,11 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", server_name: "); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append('[').append(sniName).append(']'); } - - return "Extension " + type + ", server_name: " + sb; + return sb.toString(); } private static class UnknownServerName extends SNIServerName { diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Mon Aug 11 08:18:34 2014 -0300 @@ -119,17 +119,17 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", signature_algorithms: "); boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; } } - - return "Extension " + type + ", signature_algorithms: " + sb; + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Mon Aug 11 08:18:34 2014 -0300 @@ -113,7 +113,7 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); + sb.append("Extension ").append(type).append(", curve names: {"); boolean first = true; for (int curveId : curveIds) { if (first) { @@ -138,7 +138,7 @@ } else if (curveId == ARBITRARY_CHAR2) { sb.append("arbitrary_explicit_char2_curves"); } else { - sb.append("unknown curve " + curveId); + sb.append("unknown curve ").append(curveId); } } sb.append("}"); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Mon Aug 11 08:18:34 2014 -0300 @@ -676,14 +676,13 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); - sb.append("|"); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? 'X' : ' ') + .append(rb.getString("SPACE")); + sb.append('|'); } // When -certs provided, display info has extra empty @@ -704,11 +703,13 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Signature.related.entries.")) + .append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Unsigned.entries.")) + .append("\n\n"); } } @@ -1605,8 +1606,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Mon Aug 11 08:18:34 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(' ') + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Mon Aug 11 08:18:34 2014 -0300 @@ -1062,7 +1062,7 @@ } else { boolean quoteNeeded = false; - StringBuilder sbuffer = new StringBuilder(); + StringBuilder sb = new StringBuilder(); boolean previousWhite = false; final String escapees = ",+=\n<>#;\\\""; @@ -1079,7 +1079,7 @@ for (int i = 0; i < length; i++) { char c = valStr.charAt(i); if (alreadyQuoted && (i == 0 || i == length - 1)) { - sbuffer.append(c); + sb.append(c); continue; } if (DerValue.isPrintableStringChar(c) || @@ -1096,7 +1096,7 @@ if (!(c == ' ' || c == '\n')) { // escape '"' and '\' if (c == '"' || c == '\\') { - sbuffer.append('\\'); + sb.append('\\'); } previousWhite = false; } else { @@ -1106,7 +1106,7 @@ previousWhite = true; } - sbuffer.append(c); + sb.append(c); } else if (debug != null && Debug.isOn("ava")) { @@ -1119,26 +1119,26 @@ byte[] valueBytes = Character.toString(c).getBytes("UTF8"); for (int j = 0; j < valueBytes.length; j++) { - sbuffer.append('\\'); + sb.append('\\'); char hexChar = Character.forDigit (0xF & (valueBytes[j] >>> 4), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); hexChar = Character.forDigit (0xF & (valueBytes[j]), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); } } else { // append non-printable/non-escaped char previousWhite = false; - sbuffer.append(c); + sb.append(c); } } // quote if trailing whitespace - if (sbuffer.length() > 0) { - char trailChar = sbuffer.charAt(sbuffer.length() - 1); + if (sb.length() > 0) { + char trailChar = sb.charAt(sb.length() - 1); if (trailChar == ' ' || trailChar == '\n') { quoteNeeded = true; } @@ -1147,9 +1147,9 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append('"').append(sb.toString()).append('"'); } else { - retval.append(sbuffer.toString()); + retval.append(sb.toString()); } } } catch (IOException e) { diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Mon Aug 11 08:18:34 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append('\n'); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append('\n'); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append('\n'); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Mon Aug 11 08:18:34 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append('\n'); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append('\n'); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Mon Aug 11 08:18:34 2014 -0300 @@ -258,9 +258,9 @@ * Return a printable representation of the PolicyInformation. */ public String toString() { - StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); - return s.toString(); + StringBuilder sb = new StringBuilder(" [" + policyIdentifier.toString()); + sb.append(policyQualifiers).append(" ]\n"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Mon Aug 11 08:18:34 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Mon Aug 11 08:18:34 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append('\n'); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append('\n'); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append('\n'); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append('\n'); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append('\n'); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append('\n'); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Mon Aug 11 08:18:34 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append('\n'); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Mon Aug 11 08:18:34 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append('\n'); + sb.append(" Subject: ").append(subject.toString()).append('\n'); + sb.append(" Signature Algorithm: ").append(algId.toString()).append('\n'); + sb.append(" Key: ").append(pubKey.toString()).append('\n'); + sb.append(" ").append(interval.toString()).append('\n'); + sb.append(" Issuer: ").append(issuer.toString()).append('\n'); + sb.append(" ").append(serialNum.toString()).append('\n'); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append('\n'); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append('\n'); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Mon Aug 11 08:18:33 2014 -0300 @@ -465,10 +465,10 @@ private static void appendIfLiteralAddress(String addr, StringBuffer sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(' '); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Mon Aug 11 08:18:33 2014 -0300 @@ -220,21 +220,23 @@ public String toString () { Iterator k = keys(); - StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + StringBuilder sb = new StringBuilder(); + sb.append("{size=").append(asize).append(" nkeys=").append(nkeys) + .append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sb.append(" {").append(key).append(val == null ? "" : "," + val) + .append('}'); if (k.hasNext()) { - sbuf.append (","); + sb.append (','); } } - sbuf.append (" }"); - return new String (sbuf); + sb.append (" }"); + return new String (sb); } public int findInt(String k, int Default) { diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Mon Aug 11 08:18:33 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Mon Aug 11 08:18:33 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(' ').append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Mon Aug 11 08:18:33 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Mon Aug 11 08:18:33 2014 -0300 @@ -369,10 +369,9 @@ static void appendVmErgoMessage(boolean isServerClass, String vm) { outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); - outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") - : outBuf.append(".\n\n"); + outBuf = (isServerClass) ? outBuf.append(",\n") + .append(getLocalizedMessage("java.launcher.ergo.message2")) + .append("\n\n") : outBuf.append(".\n\n"); } /** -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Mon Aug 11 08:18:33 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append(']'); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Mon Aug 11 08:18:33 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Mon Aug 11 08:18:33 2014 -0300 @@ -1894,9 +1894,9 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(' ').append(e.getMessage()); } - buf.append("}"); + buf.append('}'); return buf; } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Mon Aug 11 08:18:33 2014 -0300 @@ -1239,15 +1239,14 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + buffer.append(indent).append(spring.getClass().getName()).append(' ') + .append(Integer.toHexString(spring.hashCode())).append(' ') + .append(origin).append(", size=").append(spring.getSize()) + .append(", alignment=").append(spring.getAlignment()) + .append(" prefs=[").append(spring.getMinimumSize(axis)) + .append(' ').append(spring.getPreferredSize(axis)).append(' ') + .append(spring.getMaximumSize(axis)).append(padding) + .append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Mon Aug 11 08:18:33 2014 -0300 @@ -545,8 +545,7 @@ protected String paramString() { StringBuilder chooserPanelsString = new StringBuilder(""); for (int i=0; i keys = keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); + sb.append(key).append('=').append(get(key)).append(", "); } int length = sb.length(); if (length > 1) { sb.delete(length-2, length); } - sb.append("}"); + sb.append('}'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Mon Aug 11 08:18:33 2014 -0300 @@ -990,10 +990,7 @@ * @return a String representation of this object */ public synchronized String toString() { - StringBuilder sb = new StringBuilder(); - if(dirtyComponents != null) - sb.append("" + dirtyComponents); - return sb.toString(); + return dirtyComponents != null ? dirtyComponents.toString() : ""; } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Mon Aug 11 08:18:33 2014 -0300 @@ -294,21 +294,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(' ').append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); - sb.append("]"); + sb.append(Integer.toString(childIndices[counter])).append(' '); + sb.append(']'); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); - sb.append("]"); + sb.append(children[counter]).append(' '); + sb.append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Mon Aug 11 08:18:33 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append('\n'); + htmlBuf.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Mon Aug 11 08:18:33 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append('\n'); + htmlStr.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Mon Aug 11 08:18:33 2014 -0300 @@ -2230,11 +2230,11 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append('\t'); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab - plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); + plainStr.deleteCharAt(plainStr.length() - 1).append('\t'); htmlStr.append("\n"); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Mon Aug 11 08:18:33 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append('\n'); + htmlStr.append("
  • ").append(label).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Mon Aug 11 08:18:33 2014 -0300 @@ -1160,15 +1160,15 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(' ').append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append('@') + .append(Integer.toString(rows[counter])).append(' '); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(' '); } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Mon Aug 11 08:18:33 2014 -0300 @@ -272,26 +272,25 @@ @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuffer sb = new StringBuffer(); //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + sb.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { - buf.append("unknown file format"); + sb.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + sb.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + sb.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + sb.append(", frame length: ").append(frameLength); } - - return new String(buf); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Mon Aug 11 08:18:33 2014 -0300 @@ -473,17 +473,21 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length) + .append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize) + .append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize) + .append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize) + .append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Mon Aug 11 08:18:33 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Mon Aug 11 08:18:33 2014 -0300 @@ -165,11 +165,11 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n"); - + StringBuilder str = new StringBuilder(); + str.append("Address Type: ").append(addrType).append('\n'); str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Mon Aug 11 08:18:33 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Mon Aug 11 08:18:33 2014 -0300 @@ -139,9 +139,9 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - - str.append("Content: " + getContent() + "\n"); + StringBuilder str = new StringBuilder(); + str.append("Type: ").append(addrType).append('\n'); + str.append("Content: ").append(getContent()).append('\n'); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Mon Aug 11 08:18:32 2014 -0300 @@ -369,22 +369,24 @@ * @return information about this CryptoPermission. */ public String toString() { - StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + StringBuilder sb = new StringBuilder(100); + sb.append("(CryptoPermission ").append(alg).append(' ') + .append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + sb.append(" , effective ") + .append(((RC2ParameterSpec) algParamSpec) + .getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + sb.append(" , rounds ").append( + ((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + sb.append(' ').append(exemptionMechanism); } - buf.append(")"); - return buf.toString(); + sb.append(')'); + return sb.toString(); } private boolean impliesExemptionMechanism(String exemptionMechanism) { -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Mon Aug 11 08:18:32 2014 -0300 @@ -455,11 +455,11 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append('#').append(member); if (objectName == null) name.append("[-]"); else - name.append("[").append(objectName.getCanonicalName()).append("]"); + name.append('[').append(objectName.getCanonicalName()).append(']'); /* In the interests of legibility for Permission.toString(), we transform the empty string into "*". */ diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Mon Aug 11 08:18:32 2014 -0300 @@ -716,15 +716,14 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { - retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); + retStr.append("\nMBEAN DESCRIPTOR: \t is invalid"); } retStr.append("\nATTRIBUTES"); @@ -734,13 +733,12 @@ for (int i=0; i objNameIter = objectNameList.iterator(); objNameIter.hasNext();) { ObjectName currObjName = objNameIter.next(); diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Mon Aug 11 08:18:32 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Mon Aug 11 08:18:32 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Mon Aug 11 08:18:32 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append(']'); + sb.append("[position=").append(position).append(']'); + sb.append("[match valid=").append(matchValid).append(']'); + sb.append("[need input=").append(needInput).append(']'); + sb.append("[source closed=").append(sourceClosed).append(']'); + sb.append("[skipped=").append(skipped).append(']'); + sb.append("[group separator=").append(groupSeparator).append(']'); + sb.append("[decimal separator=").append(decimalSeparator).append(']'); + sb.append("[positive prefix=").append(positivePrefix).append(']'); + sb.append("[negative prefix=").append(negativePrefix).append(']'); + sb.append("[positive suffix=").append(positiveSuffix).append(']'); + sb.append("[negative suffix=").append(negativeSuffix).append(']'); + sb.append("[NaN string=").append(nanString).append(']'); + sb.append("[infinity string=").append(infinityString).append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Mon Aug 11 08:18:32 2014 -0300 @@ -1295,14 +1295,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(',').append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Mon Aug 11 08:18:32 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append('|').append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append('|').append(produceEquivalentAlternation(next)); } return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Mon Aug 11 08:18:32 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Mon Aug 11 08:18:32 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Mon Aug 11 08:18:32 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(' ').append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(' ').append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Mon Aug 11 08:18:32 2014 -0300 @@ -610,8 +610,8 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ") + .append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Mon Aug 11 08:18:32 2014 -0300 @@ -179,12 +179,12 @@ public String toString() { Enumeration enum_ = elements(); StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); + sb.append(super.toString()).append(" (\n"); while (enum_.hasMoreElements()) { try { - sb.append(" "); + sb.append(' '); sb.append(enum_.nextElement().toString()); - sb.append("\n"); + sb.append('\n'); } catch (NoSuchElementException e){ // ignore } diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Mon Aug 11 08:18:32 2014 -0300 @@ -291,9 +291,9 @@ StringBuilder palBuf = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palBuf.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); if (i < principals.length-1) palBuf.append(",\n"); else diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Mon Aug 11 08:18:32 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Mon Aug 11 08:18:32 2014 -0300 @@ -224,17 +224,16 @@ Iterator stringIterator = getCertificates().iterator(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); + sb.append('\n').append(type).append(" Cert Path: length = ").append(getCertificates().size()).append(".\n"); sb.append("[\n"); int i = 1; while (stringIterator.hasNext()) { - sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); + sb.append("==========================================" + "===============Certificate ") + .append(i).append(" start.\n"); Certificate stringCert = stringIterator.next(); sb.append(stringCert.toString()); - sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); + sb.append("\n========================================" + "=================Certificate ") + .append(i).append(" end.\n\n\n"); i++; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Mon Aug 11 08:18:32 2014 -0300 @@ -134,8 +134,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); - sb.append("]"); + sb.append(" collection: ").append(coll).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Mon Aug 11 08:18:32 2014 -0300 @@ -141,9 +141,9 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); - sb.append("]"); + sb.append(" serverName: ").append(serverName).append('\n'); + sb.append(" port: ").append(port).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Mon Aug 11 08:18:32 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Mon Aug 11 08:18:32 2014 -0300 @@ -108,12 +108,14 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); - sb.append("]"); + sb.append("PKIXCertPathBuilderResult: [\n"); + sb.append(" Certification Path: ").append(certPath).append('\n'); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()) + .append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())) + .append('\n'); + sb.append(" Subject Public Key: ").append(getPublicKey()).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Mon Aug 11 08:18:32 2014 -0300 @@ -150,10 +150,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); - sb.append("]"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append('\n'); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Mon Aug 11 08:18:32 2014 -0300 @@ -698,8 +698,7 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()).append('\n'); } /* now, append initial state information */ @@ -707,30 +706,37 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [") + .append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)) + .append('\n'); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)) + .append('\n'); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled) + .append('\n'); + sb.append(" Explicit Policy Required: ") + .append(explicitPolicyRequired).append('\n'); + sb.append(" Policy Mapping Inhibited: ") + .append(policyMappingInhibited).append('\n'); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited) + .append('\n'); + sb.append(" Policy Qualifiers Rejected: ") + .append(policyQualifiersRejected).append('\n'); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ") + .append(String.valueOf(certSelector)).append('\n'); /* finally, append miscellaneous parameters */ if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); + sb.append(" Certification Path Checkers: [").append(certPathCheckers.toString()).append("]\n"); if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); - sb.append("]"); + sb.append(" CertStores: [").append(certStores.toString()).append("]\n"); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Mon Aug 11 08:18:32 2014 -0300 @@ -163,10 +163,11 @@ HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); - sb.append("]"); + sb.append(" qualifierID: ").append(mId).append('\n'); + sb.append(" qualifier: ") + .append(mData == null ? "null" : enc.encodeBuffer(mData)) + .append('\n'); + sb.append(']'); pqiString = sb.toString(); return pqiString; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Mon Aug 11 08:18:32 2014 -0300 @@ -320,14 +320,18 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()) + .append('\n'); + sb.append(" Trusted CA Issuer Name: ") + .append(String.valueOf(caName)).append('\n'); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()) + .append('\n'); } - if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + if (nc != null) { + sb.append(" Name Constraints: ").append(nc.toString()) + .append('\n'); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Mon Aug 11 08:18:32 2014 -0300 @@ -572,17 +572,17 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append('\n'); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append('\n'); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append('\n'); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); - sb.append("]"); + sb.append(" Certificate being checked: ").append(certChecking).append('\n'); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Mon Aug 11 08:18:32 2014 -0300 @@ -1814,72 +1814,67 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()).append('\n'); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()) + .append('\n'); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append('\n'); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append('\n'); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)) + .append('\n'); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ") + .append(list.get(1)).append('\n'); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ").append(enc.encodeBuffer(subjectKeyID)).append('\n'); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ").append(enc.encodeBuffer(authorityKeyID)).append('\n'); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ").append(certificateValid.toString()).append('\n'); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ").append(privateKeyValid.toString()).append('\n'); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ").append(subjectPublicKeyAlgID.toString()).append('\n'); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ").append(subjectPublicKey.toString()).append('\n'); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)).append('\n'); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ").append(keyPurposeSet.toString()).append('\n'); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append('\n'); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Mon Aug 11 08:18:32 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Mon Aug 11 08:18:32 2014 -0300 @@ -237,13 +237,16 @@ * Returns a descriptive representation of this memory usage. */ public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); - return buf.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("init = ").append(init).append('(').append(init >> 10) + .append("K) "); + sb.append("used = ").append(used).append('(').append(used >> 10) + .append("K) "); + sb.append("committed = ").append(committed).append('(') + .append(committed >> 10).append("K) "); + sb.append("max = ").append(max).append('(').append(max >> 10) + .append("K)"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Mon Aug 11 08:18:32 2014 -0300 @@ -579,15 +579,17 @@ * @return a string representation of this thread info. */ public String toString() { - StringBuilder sb = new StringBuilder("\"" + getThreadName() + "\"" + - " Id=" + getThreadId() + " " + - getThreadState()); + StringBuilder sb = new StringBuilder(); + sb.append('"').append(getThreadName()).append('"') + .append(" Id=").append(getThreadId()).append(' ') + .append(getThreadState()); + if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +601,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +624,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +636,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Mon Aug 11 08:18:31 2014 -0300 @@ -137,8 +137,11 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:") + .append(LINE_SEP).append(" ") + .append(this.l); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Mon Aug 11 08:18:31 2014 -0300 @@ -268,8 +268,10 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:").append(LINE_SEP) + .append(" ").append(this.l); + } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Mon Aug 11 08:18:31 2014 -0300 @@ -140,7 +140,8 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP) + .append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Mon Aug 11 08:18:31 2014 -0300 @@ -238,11 +238,12 @@ } protected String engineToString() { - StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("MD: ").append(mdName).append('\n'); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()) + .append('\n'); + sb.append("PSource: PSpecified ").append(p.length == 0 ? "" : + Debug.toHexString(new BigInteger(p))).append('\n'); + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Mon Aug 11 08:18:31 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Mon Aug 11 08:18:31 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(':'); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Mon Aug 11 08:18:31 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Mon Aug 11 08:18:31 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append('.').append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Mon Aug 11 08:18:31 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Mon Aug 11 08:18:31 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append('\n'); + sb.append("msgMaxSize : ").append(msgMaxSize).append('\n'); + sb.append("msgFlags : ").append(msgFlags).append('\n'); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append('\n'); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Mon Aug 11 08:18:31 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Mon Aug 11 08:18:31 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(','); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Mon Aug 11 08:18:31 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(' '); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(' '); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Mon Aug 11 08:18:31 2014 -0300 @@ -235,14 +235,15 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(' ').append(nodeName).append("=\"") + .append(att.getNodeValue()).append('"'); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append('>').append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Mon Aug 11 08:18:31 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(' '); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Mon Aug 11 08:18:31 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(','); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append('+'); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Mon Aug 11 08:18:31 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Mon Aug 11 08:18:31 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Mon Aug 11 08:18:31 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Mon Aug 11 08:18:31 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Mon Aug 11 08:18:31 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Mon Aug 11 08:18:31 2014 -0300 @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } @@ -425,7 +425,7 @@ } } } - result.append("}"); + result.append('}'); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Mon Aug 11 08:18:31 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(';'); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Mon Aug 11 08:18:31 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append('\''); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { From pavel.rappo at oracle.com Mon Aug 11 14:33:14 2014 From: pavel.rappo at oracle.com (Pavel Rappo) Date: Mon, 11 Aug 2014 15:33:14 +0100 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> Message-ID: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> Otavio, Just skimmed through your changes. It looks good. But there are some things we can make a little bit better though. IMO, it's not always a performance that matters (looking around to see if Alexey Shipilev is somewhere near) but readability. It's good to estimate performance requirements of a code before making a decision of whether to sacrifice readability for performance or not. I noticed there are some methods that are screaming for readability improvements. Namely, different versions of joining strings through a separator. You can find them in following methods in your changeset: sun.security.acl.AclEntryImpl::toString sun.security.ssl.HandshakeMessage.CertificateRequest::print javax.swing.MultiUIDefaults::toString (one of the most bizarre one) sun.security.provider.PolicyFile::expandSelf java.security.ProtectionDomain::toString javax.management.relation.Role::toString sun.security.ssl.SupportedEllipticCurvesExtension::toString sun.tools.jstat.SyntaxException::SyntaxException Unfortunately, neither java.util.StringJoiner nor String.join have perfect (but who has?) APIs. So it's up to us to figure out the best way of joining elements. So when the power of those guys is not enough, we can go this way (or maybe some else): Iterable elements = ... StringJoiner j = new StringJoiner(", "); elements.forEach(e -> j.add(e.toString())); or Collection elements = ... String i = elements.stream() .map(Object::toString) .collect(Collectors.joining(", ")); Other than that: 1. It looks like some StringBuffers are still lurking out there. We should change them to StringBuilders, *only if* we can prove they are not exposed to more than one thread: --- dev/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java (revision 10452+:8e501e6bbf1f+) @@ -272,7 +272,7 @@ @Override public String toString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { --- dev/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java (revision 10452+:8e501e6bbf1f+) @@ -346,12 +346,12 @@ public String valueString(boolean bigLimit) { // Char arrays deserve special treatment - StringBuffer result; + StringBuilder result; byte[] value = getValue(); int max = value.length; byte elementSignature = getElementType(); if (elementSignature == 'C') { - result = new StringBuffer(); + result = new StringBuilder(); for (int i = 0; i < value.length; ) { char val = charAt(i, value); result.append(val); @@ -362,7 +362,7 @@ if (bigLimit) { limit = 1000; } - result = new StringBuffer("{"); + result = new StringBuilder("{"); int num = 0; for (int i = 0; i < value.length; ) { if (num > 0) { --- dev/jdk/src/share/classes/javax/swing/GroupLayout.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/javax/swing/GroupLayout.java (revision 10452+:8e501e6bbf1f+) @@ -1213,7 +1213,7 @@ registerComponents(horizontalGroup, HORIZONTAL); registerComponents(verticalGroup, VERTICAL); } - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); buffer.append("HORIZONTAL\n"); createSpringDescription(buffer, horizontalGroup, " ", HORIZONTAL); buffer.append("\nVERTICAL\n"); @@ -1221,7 +1221,7 @@ return buffer.toString(); } - private void createSpringDescription(StringBuffer buffer, Spring spring, + private void createSpringDescription(StringBuilder buffer, Spring spring, String indent, int axis) { String origin = ""; String padding = ""; --- dev/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java (revision 10452+:8e501e6bbf1f+) @@ -463,7 +463,7 @@ // --------- - private static void appendIfLiteralAddress(String addr, StringBuffer sb) { + private static void appendIfLiteralAddress(String addr, StringBuilder sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { sb.append("dns://").append(addr).append(' '); } else { @@ -478,10 +478,8 @@ * corresponding to the supplied List of nameservers. */ private static String createProviderURL(List nsList) { - StringBuffer sb = new StringBuffer(); - for (String s: nsList) { - appendIfLiteralAddress(s, sb); - } + StringBuilder sb = new StringBuilder(); + nsList.forEach(s -> appendIfLiteralAddress(s, sb)); return sb.toString(); } @@ -491,7 +489,7 @@ * contained in the provided str. */ private static String createProviderURL(String str) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(str, ","); while (st.hasMoreTokens()) { appendIfLiteralAddress(st.nextToken(), sb); 2. Also there are some minor issues with line width and readability: --- dev/jdk/src/share/classes/java/security/cert/CertPath.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/java/security/cert/CertPath.java (revision 10452+:8e501e6bbf1f+) @@ -224,16 +224,16 @@ Iterator stringIterator = getCertificates().iterator(); - sb.append('\n').append(type).append(" Cert Path: length = ").append(getCertificates().size()).append(".\n"); - sb.append("[\n"); + sb.append('\n').append(type).append(" Cert Path: length = ") + .append(getCertificates().size()).append(".\n").append("[\n"); int i = 1; while (stringIterator.hasNext()) { - sb.append("==========================================" + "===============Certificate ") - .append(i).append(" start.\n"); + sb.append("==========================================") + .append("===============Certificate ").append(i).append(" start.\n"); Certificate stringCert = stringIterator.next(); - sb.append(stringCert.toString()); - sb.append("\n========================================" + "=================Certificate ") - .append(i).append(" end.\n\n\n"); + sb.append(stringCert.toString()).append('\n'); + sb.append("========================================") + .append("=================Certificate ").append(i).append(" end.\n\n\n"); i++; } --- dev/jdk/src/share/classes/javax/swing/JColorChooser.java (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) +++ dev/jdk/src/share/classes/javax/swing/JColorChooser.java (revision 10452+:8e501e6bbf1f+) @@ -543,7 +543,7 @@ * @return a string representation of this JColorChooser */ protected String paramString() { - StringBuilder chooserPanelsString = new StringBuilder(""); + StringBuilder chooserPanelsString = new StringBuilder(); for (int i=0; i Requesting approval for the backport of JDK-8035974. The change was pushed to jdk 9 in May and it is applied cleanly to jdk8u sources: Main RFE: https://bugs.openjdk.java.net/browse/JDK-8035974 Changeset: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/dabb44358772 Review: http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-May/026945.html Corresponding Hotspot changes (8035968+8035974) will be pushed through jdk8u/hs-dev as usual. Thanks, Vladimir From jamil.j.nimeh at oracle.com Mon Aug 11 21:56:28 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Mon, 11 Aug 2014 14:56:28 -0700 Subject: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule Message-ID: <53E93C0C.1050105@oracle.com> Hello all, This webrev covers a fix to LoginContext so it no longer selects the wrong method when a LoginModule method (login, logout, commit, etc.) has been overloaded. Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 Thank you, --Jamil From otaviojava at java.net Tue Aug 12 00:14:44 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Mon, 11 Aug 2014 21:14:44 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> Message-ID: Done. I understand about StringJoiner, but no one is applicable. Also believe that there are many ways to get the code more readable, but I believe the best strategy is doing it in baby steps. https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_4.zip On Mon, Aug 11, 2014 at 11:33 AM, Pavel Rappo wrote: > Otavio, > > Just skimmed through your changes. It looks good. But there are some > things we can make a little bit better though. IMO, it's not always a > performance that matters (looking around to see if Alexey Shipilev is > somewhere near) but readability. It's good to estimate performance > requirements of a code before making a decision of whether to sacrifice > readability for performance or not. I noticed there are some methods that > are screaming for readability improvements. Namely, different versions of > joining strings through a separator. You can find them in following methods > in your changeset: > > sun.security.acl.AclEntryImpl::toString > sun.security.ssl.HandshakeMessage.CertificateRequest::print > javax.swing.MultiUIDefaults::toString (one of the most bizarre one) > sun.security.provider.PolicyFile::expandSelf > java.security.ProtectionDomain::toString > javax.management.relation.Role::toString > sun.security.ssl.SupportedEllipticCurvesExtension::toString > sun.tools.jstat.SyntaxException::SyntaxException > > Unfortunately, neither java.util.StringJoiner nor String.join have perfect > (but who has?) APIs. So it's up to us to figure out the best way of joining > elements. So when the power of those guys is not enough, we can go this way > (or maybe some else): > > Iterable elements = ... > StringJoiner j = new StringJoiner(", "); > elements.forEach(e -> j.add(e.toString())); > > or > > Collection elements = ... > String i = elements.stream() > .map(Object::toString) > .collect(Collectors.joining(", ")); > > Other than that: > > 1. It looks like some StringBuffers are still lurking out there. We should > change them to StringBuilders, *only if* we can prove they are not exposed > to more than one thread: > > --- dev/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java > (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ dev/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java > (revision 10452+:8e501e6bbf1f+) > @@ -272,7 +272,7 @@ > @Override > public String toString() { > > - StringBuffer sb = new StringBuffer(); > + StringBuilder sb = new StringBuilder(); > > //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() > throws unexpected NullPointerException > if (type != null) { > > --- > dev/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java > (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ > dev/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java > (revision 10452+:8e501e6bbf1f+) > @@ -346,12 +346,12 @@ > > public String valueString(boolean bigLimit) { > // Char arrays deserve special treatment > - StringBuffer result; > + StringBuilder result; > byte[] value = getValue(); > int max = value.length; > byte elementSignature = getElementType(); > if (elementSignature == 'C') { > - result = new StringBuffer(); > + result = new StringBuilder(); > for (int i = 0; i < value.length; ) { > char val = charAt(i, value); > result.append(val); > @@ -362,7 +362,7 @@ > if (bigLimit) { > limit = 1000; > } > - result = new StringBuffer("{"); > + result = new StringBuilder("{"); > int num = 0; > for (int i = 0; i < value.length; ) { > if (num > 0) { > > --- dev/jdk/src/share/classes/javax/swing/GroupLayout.java (revision > 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ dev/jdk/src/share/classes/javax/swing/GroupLayout.java (revision > 10452+:8e501e6bbf1f+) > @@ -1213,7 +1213,7 @@ > registerComponents(horizontalGroup, HORIZONTAL); > registerComponents(verticalGroup, VERTICAL); > } > - StringBuffer buffer = new StringBuffer(); > + StringBuilder buffer = new StringBuilder(); > buffer.append("HORIZONTAL\n"); > createSpringDescription(buffer, horizontalGroup, " ", > HORIZONTAL); > buffer.append("\nVERTICAL\n"); > @@ -1221,7 +1221,7 @@ > return buffer.toString(); > } > > - private void createSpringDescription(StringBuffer buffer, Spring > spring, > + private void createSpringDescription(StringBuilder buffer, Spring > spring, > String indent, int axis) { > String origin = ""; > String padding = ""; > > --- > dev/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java > (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ > dev/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java > (revision 10452+:8e501e6bbf1f+) > @@ -463,7 +463,7 @@ > > // --------- > > - private static void appendIfLiteralAddress(String addr, StringBuffer > sb) { > + private static void appendIfLiteralAddress(String addr, StringBuilder > sb) { > if (IPAddressUtil.isIPv4LiteralAddress(addr)) { > sb.append("dns://").append(addr).append(' '); > } else { > @@ -478,10 +478,8 @@ > * corresponding to the supplied List of nameservers. > */ > private static String createProviderURL(List nsList) { > - StringBuffer sb = new StringBuffer(); > - for (String s: nsList) { > - appendIfLiteralAddress(s, sb); > - } > + StringBuilder sb = new StringBuilder(); > + nsList.forEach(s -> appendIfLiteralAddress(s, sb)); > return sb.toString(); > } > > @@ -491,7 +489,7 @@ > * contained in the provided str. > */ > private static String createProviderURL(String str) { > - StringBuffer sb = new StringBuffer(); > + StringBuilder sb = new StringBuilder(); > StringTokenizer st = new StringTokenizer(str, ","); > while (st.hasMoreTokens()) { > appendIfLiteralAddress(st.nextToken(), sb); > > > 2. Also there are some minor issues with line width and readability: > > --- dev/jdk/src/share/classes/java/security/cert/CertPath.java (revision > 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ dev/jdk/src/share/classes/java/security/cert/CertPath.java (revision > 10452+:8e501e6bbf1f+) > @@ -224,16 +224,16 @@ > Iterator stringIterator = > getCertificates().iterator(); > > - sb.append('\n').append(type).append(" Cert Path: length = > ").append(getCertificates().size()).append(".\n"); > - sb.append("[\n"); > + sb.append('\n').append(type).append(" Cert Path: length = ") > + .append(getCertificates().size()).append(".\n").append("[\n"); > int i = 1; > while (stringIterator.hasNext()) { > - sb.append("==========================================" + > "===============Certificate ") > - .append(i).append(" start.\n"); > + sb.append("==========================================") > + .append("===============Certificate ").append(i).append(" > start.\n"); > Certificate stringCert = stringIterator.next(); > - sb.append(stringCert.toString()); > - sb.append("\n========================================" + > "=================Certificate ") > - .append(i).append(" end.\n\n\n"); > + sb.append(stringCert.toString()).append('\n'); > + sb.append("========================================") > + .append("=================Certificate ").append(i).append(" > end.\n\n\n"); > i++; > } > > --- dev/jdk/src/share/classes/javax/swing/JColorChooser.java (revision > 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ dev/jdk/src/share/classes/javax/swing/JColorChooser.java (revision > 10452+:8e501e6bbf1f+) > @@ -543,7 +543,7 @@ > * @return a string representation of this JColorChooser > */ > protected String paramString() { > - StringBuilder chooserPanelsString = new StringBuilder(""); > + StringBuilder chooserPanelsString = new StringBuilder(); > for (int i=0; i > chooserPanelsString.append('[').append(chooserPanels[i].toString()).append(']'); > } > > 3. Btw, I wonder what "try ... catch" is doing here. Haven't we checked > enum_.hasMoreElements() is true? (I guess it's a question to the security > team). > > --- dev/jdk/src/share/classes/java/security/PermissionCollection.java > (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ dev/jdk/src/share/classes/java/security/PermissionCollection.java > (revision 10452+:8e501e6bbf1f+) > @@ -181,13 +181,9 @@ > StringBuilder sb = new StringBuilder(); > sb.append(super.toString()).append(" (\n"); > while (enum_.hasMoreElements()) { > - try { > - sb.append(' '); > - sb.append(enum_.nextElement().toString()); > - sb.append('\n'); > + sb.append(' '); > + sb.append(enum_.nextElement().toString()); > + sb.append('\n'); > - } catch (NoSuchElementException e){ > - // ignore > - } > } > sb.append(")\n"); > return sb.toString(); > > 4. This method looks dead (not used): > > --- > dev/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java > (revision 10452:8e501e6bbf1fda1bf9b19bc00fff02074162946f) > +++ > dev/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java > (revision 10452+:8e501e6bbf1f+) > @@ -348,15 +348,4 @@ > return javaArgs; > } > } > - > - private String appendPath(String path1, String path2) { > - if (path1 == null || path1.length() == 0) { > - return path2 == null ? "." : path2; > - } else if (path2 == null || path2.length() == 0) { > - return path1; > - } else { > - return path1 + File.pathSeparator + path2; > - } > - } > - > } > > -Pavel -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Mon Aug 11 21:07:58 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append('\n'); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Mon Aug 11 21:07:58 2014 -0300 @@ -79,25 +79,25 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
    "); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    "); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Mon Aug 11 21:07:58 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append('=').append(map.get(key)).append(','); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append('=').append(entry.getValue()).append(','); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(','); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Mon Aug 11 21:07:58 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(' ').append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(' ').append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(' ').append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(' ').append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Mon Aug 11 21:07:58 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(' '); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Mon Aug 11 21:07:58 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append('|').append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Mon Aug 11 21:07:58 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Mon Aug 11 21:07:58 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Mon Aug 11 21:07:58 2014 -0300 @@ -137,26 +137,30 @@ /** * Return a string representation of the contents of the ACL entry. */ - public String toString() { - StringBuffer s = new StringBuffer(); - if (negative) - s.append("-"); - else - s.append("+"); - if (user instanceof Group) - s.append("Group."); - else - s.append("User."); - s.append(user + "="); - Enumeration e = permissions(); - while(e.hasMoreElements()) { - Permission p = e.nextElement(); - s.append(p); - if (e.hasMoreElements()) - s.append(","); - } - return new String(s); - } + public String toString() { + StringBuffer sb = new StringBuffer(); + if (negative) { + sb.append('-'); + } else { + sb.append('+'); + } + if (user instanceof Group) { + sb.append("Group."); + } else { + sb.append("User."); + } + sb.append(user).append('='); + + Enumeration e = permissions(); + while (e.hasMoreElements()) { + Permission p = e.nextElement(); + sb.append(p); + if (e.hasMoreElements()) { + sb.append(','); + } + } + return sb.toString(); + } /** * Clones an AclEntry. diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Mon Aug 11 21:07:58 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Mon Aug 11 21:07:58 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append('\n'); + sb.append('\t').append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Mon Aug 11 21:07:58 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append('\n'); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Mon Aug 11 21:07:58 2014 -0300 @@ -1485,30 +1485,30 @@ } int startIndex = 0; int v; - StringBuilder sb = new StringBuilder(); - while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { + StringBuilder sb = new StringBuilder(); + while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { - // add non-SELF string - sb.append(sp.getSelfName().substring(startIndex, v)); + // add non-SELF string + sb.append(sp.getSelfName().substring(startIndex, v)); - // expand SELF - Iterator pli = entryPs.iterator(); - while (pli.hasNext()) { - PolicyParser.PrincipalEntry pppe = pli.next(); - String[][] principalInfo = getPrincipalInfo(pppe,pdp); - for (int i = 0; i < principalInfo.length; i++) { - if (i != 0) { - sb.append(", "); - } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); - } - if (pli.hasNext()) { - sb.append(", "); - } - } - startIndex = v + SELF.length(); - } + // expand SELF + Iterator pli = entryPs.iterator(); + while (pli.hasNext()) { + PolicyParser.PrincipalEntry pppe = pli.next(); + String[][] principalInfo = getPrincipalInfo(pppe, pdp); + for (int i = 0; i < principalInfo.length; i++) { + if (i != 0) { + sb.append(", "); + } + sb.append(principalInfo[i][0]).append(' ').append('"') + .append(principalInfo[i][1]).append('"'); + } + if (pli.hasNext()) { + sb.append(", "); + } + } + startIndex = v + SELF.length(); + } // add remaining string (might be the entire string) sb.append(sp.getSelfName().substring(startIndex)); @@ -1774,17 +1774,17 @@ Principal[] principals = pd.getPrincipals(); String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palSB = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palSB.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); if (i < principals.length-1) - palBuf.append(", "); + palSB.append(", "); else - palBuf.append(")"); + palSB.append(')'); } - pals = palBuf.toString(); + pals = palSB.toString(); } return "PD CodeSource: " + pd.getCodeSource() @@ -1884,7 +1884,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('"'); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Mon Aug 11 21:07:58 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append('\n'); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append('\n').append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Mon Aug 11 21:07:58 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append('\n'); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append('\n'); + sb.append("revocationReason is ").append(revocationReason).append('\n'); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append('\n'); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Mon Aug 11 21:07:58 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Mon Aug 11 21:07:58 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Mon Aug 11 21:07:58 2014 -0300 @@ -267,11 +267,11 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", server_name: "); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append('[').append(sniName).append(']'); } - - return "Extension " + type + ", server_name: " + sb; + return sb.toString(); } private static class UnknownServerName extends SNIServerName { diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Mon Aug 11 21:07:58 2014 -0300 @@ -119,17 +119,17 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", signature_algorithms: "); boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; } } - - return "Extension " + type + ", signature_algorithms: " + sb; + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Mon Aug 11 21:07:58 2014 -0300 @@ -112,37 +112,37 @@ @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); - boolean first = true; - for (int curveId : curveIds) { - if (first) { - first = false; - } else { - sb.append(", "); - } - // first check if it is a known named curve, then try other cases. - String oid = getCurveOid(curveId); - if (oid != null) { - ECParameterSpec spec = JsseJce.getECParameterSpec(oid); - // this toString() output will look nice for the current - // implementation of the ECParameterSpec class in the Sun - // provider, but may not look good for other implementations. - if (spec != null) { - sb.append(spec.toString().split(" ")[0]); - } else { - sb.append(oid); - } - } else if (curveId == ARBITRARY_PRIME) { - sb.append("arbitrary_explicit_prime_curves"); - } else if (curveId == ARBITRARY_CHAR2) { - sb.append("arbitrary_explicit_char2_curves"); - } else { - sb.append("unknown curve " + curveId); - } - } - sb.append("}"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", curve names: {"); + boolean first = true; + for (int curveId : curveIds) { + if (first) { + first = false; + } else { + sb.append(", "); + } + // first check if it is a known named curve, then try other cases. + String oid = getCurveOid(curveId); + if (oid != null) { + ECParameterSpec spec = JsseJce.getECParameterSpec(oid); + // this toString() output will look nice for the current + // implementation of the ECParameterSpec class in the Sun + // provider, but may not look good for other implementations. + if (spec != null) { + sb.append(spec.toString().split(" ")[0]); + } else { + sb.append(oid); + } + } else if (curveId == ARBITRARY_PRIME) { + sb.append("arbitrary_explicit_prime_curves"); + } else if (curveId == ARBITRARY_CHAR2) { + sb.append("arbitrary_explicit_char2_curves"); + } else { + sb.append("unknown curve ").append(curveId); + } + } + sb.append("}"); + return sb.toString(); } // Test whether we support the curve with the given index. diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Mon Aug 11 21:07:58 2014 -0300 @@ -676,14 +676,13 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); - sb.append("|"); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? 'X' : ' ') + .append(rb.getString("SPACE")); + sb.append('|'); } // When -certs provided, display info has extra empty @@ -704,11 +703,13 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Signature.related.entries.")) + .append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Unsigned.entries.")) + .append("\n\n"); } } @@ -1605,8 +1606,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Mon Aug 11 21:07:58 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(' ') + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Mon Aug 11 21:07:58 2014 -0300 @@ -1062,7 +1062,7 @@ } else { boolean quoteNeeded = false; - StringBuilder sbuffer = new StringBuilder(); + StringBuilder sb = new StringBuilder(); boolean previousWhite = false; final String escapees = ",+=\n<>#;\\\""; @@ -1079,7 +1079,7 @@ for (int i = 0; i < length; i++) { char c = valStr.charAt(i); if (alreadyQuoted && (i == 0 || i == length - 1)) { - sbuffer.append(c); + sb.append(c); continue; } if (DerValue.isPrintableStringChar(c) || @@ -1096,7 +1096,7 @@ if (!(c == ' ' || c == '\n')) { // escape '"' and '\' if (c == '"' || c == '\\') { - sbuffer.append('\\'); + sb.append('\\'); } previousWhite = false; } else { @@ -1106,7 +1106,7 @@ previousWhite = true; } - sbuffer.append(c); + sb.append(c); } else if (debug != null && Debug.isOn("ava")) { @@ -1119,26 +1119,26 @@ byte[] valueBytes = Character.toString(c).getBytes("UTF8"); for (int j = 0; j < valueBytes.length; j++) { - sbuffer.append('\\'); + sb.append('\\'); char hexChar = Character.forDigit (0xF & (valueBytes[j] >>> 4), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); hexChar = Character.forDigit (0xF & (valueBytes[j]), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); } } else { // append non-printable/non-escaped char previousWhite = false; - sbuffer.append(c); + sb.append(c); } } // quote if trailing whitespace - if (sbuffer.length() > 0) { - char trailChar = sbuffer.charAt(sbuffer.length() - 1); + if (sb.length() > 0) { + char trailChar = sb.charAt(sb.length() - 1); if (trailChar == ' ' || trailChar == '\n') { quoteNeeded = true; } @@ -1147,9 +1147,9 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append('"').append(sb.toString()).append('"'); } else { - retval.append(sbuffer.toString()); + retval.append(sb.toString()); } } } catch (IOException e) { diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Mon Aug 11 21:07:58 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append('\n'); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append('\n'); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append('\n'); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Mon Aug 11 21:07:58 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append('\n'); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append('\n'); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Mon Aug 11 21:07:58 2014 -0300 @@ -258,9 +258,9 @@ * Return a printable representation of the PolicyInformation. */ public String toString() { - StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); - return s.toString(); + StringBuilder sb = new StringBuilder(" [" + policyIdentifier.toString()); + sb.append(policyQualifiers).append(" ]\n"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Mon Aug 11 21:07:58 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Mon Aug 11 21:07:58 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append('\n'); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append('\n'); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append('\n'); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append('\n'); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append('\n'); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append('\n'); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Mon Aug 11 21:07:58 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append('\n'); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Mon Aug 11 21:07:58 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append('\n'); + sb.append(" Subject: ").append(subject.toString()).append('\n'); + sb.append(" Signature Algorithm: ").append(algId.toString()).append('\n'); + sb.append(" Key: ").append(pubKey.toString()).append('\n'); + sb.append(" ").append(interval.toString()).append('\n'); + sb.append(" Issuer: ").append(issuer.toString()).append('\n'); + sb.append(" ").append(serialNum.toString()).append('\n'); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append('\n'); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append('\n'); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Mon Aug 11 21:07:58 2014 -0300 @@ -463,12 +463,12 @@ // --------- - private static void appendIfLiteralAddress(String addr, StringBuffer sb) { + private static void appendIfLiteralAddress(String addr, StringBuilder sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(' '); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } @@ -478,7 +478,7 @@ * corresponding to the supplied List of nameservers. */ private static String createProviderURL(List nsList) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (String s: nsList) { appendIfLiteralAddress(s, sb); } @@ -491,7 +491,7 @@ * contained in the provided str. */ private static String createProviderURL(String str) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(str, ","); while (st.hasMoreTokens()) { appendIfLiteralAddress(st.nextToken(), sb); diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Mon Aug 11 21:07:58 2014 -0300 @@ -220,21 +220,23 @@ public String toString () { Iterator k = keys(); - StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + StringBuilder sb = new StringBuilder(); + sb.append("{size=").append(asize).append(" nkeys=").append(nkeys) + .append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sb.append(" {").append(key).append(val == null ? "" : "," + val) + .append('}'); if (k.hasNext()) { - sbuf.append (","); + sb.append (','); } } - sbuf.append (" }"); - return new String (sbuf); + sb.append (" }"); + return new String (sb); } public int findInt(String k, int Default) { diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Mon Aug 11 21:07:58 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Mon Aug 11 21:07:58 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(' ').append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Mon Aug 11 21:07:58 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Mon Aug 11 21:07:58 2014 -0300 @@ -369,10 +369,9 @@ static void appendVmErgoMessage(boolean isServerClass, String vm) { outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); - outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") - : outBuf.append(".\n\n"); + outBuf = (isServerClass) ? outBuf.append(",\n") + .append(getLocalizedMessage("java.launcher.ergo.message2")) + .append("\n\n") : outBuf.append(".\n\n"); } /** -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Mon Aug 11 21:07:57 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append(']'); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Mon Aug 11 21:07:57 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Mon Aug 11 21:07:57 2014 -0300 @@ -1894,9 +1894,9 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(' ').append(e.getMessage()); } - buf.append("}"); + buf.append('}'); return buf; } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Mon Aug 11 21:07:57 2014 -0300 @@ -1213,15 +1213,15 @@ registerComponents(horizontalGroup, HORIZONTAL); registerComponents(verticalGroup, VERTICAL); } - StringBuffer buffer = new StringBuffer(); - buffer.append("HORIZONTAL\n"); - createSpringDescription(buffer, horizontalGroup, " ", HORIZONTAL); - buffer.append("\nVERTICAL\n"); - createSpringDescription(buffer, verticalGroup, " ", VERTICAL); - return buffer.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("HORIZONTAL\n"); + createSpringDescription(sb, horizontalGroup, " ", HORIZONTAL); + sb.append("\nVERTICAL\n"); + createSpringDescription(sb, verticalGroup, " ", VERTICAL); + return sb.toString(); } - private void createSpringDescription(StringBuffer buffer, Spring spring, + private void createSpringDescription(StringBuilder sb, Spring spring, String indent, int axis) { String origin = ""; String padding = ""; @@ -1239,20 +1239,19 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + sb.append(indent).append(spring.getClass().getName()).append(' ') + .append(Integer.toHexString(spring.hashCode())).append(' ') + .append(origin).append(", size=").append(spring.getSize()) + .append(", alignment=").append(spring.getAlignment()) + .append(" prefs=[").append(spring.getMinimumSize(axis)) + .append(' ').append(spring.getPreferredSize(axis)).append(' ') + .append(spring.getMaximumSize(axis)).append(padding) + .append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; for (int counter = 0; counter < springs.size(); counter++) { - createSpringDescription(buffer, springs.get(counter), indent, + createSpringDescription(sb, springs.get(counter), indent, axis); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Mon Aug 11 21:07:57 2014 -0300 @@ -542,19 +542,19 @@ * * @return a string representation of this JColorChooser */ - protected String paramString() { - StringBuilder chooserPanelsString = new StringBuilder(""); - for (int i=0; i keys = keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); - } - int length = sb.length(); - if (length > 1) { - sb.delete(length-2, length); - } - sb.append("}"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("{"); + Enumeration keys = keys(); + while (keys.hasMoreElements()) { + Object key = keys.nextElement(); + sb.append(key).append('=').append(get(key)).append(", "); + } + int length = sb.length(); + if (length > 1) { + sb.delete(length - 2, length); + } + sb.append('}'); + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Mon Aug 11 21:07:57 2014 -0300 @@ -990,10 +990,7 @@ * @return a String representation of this object */ public synchronized String toString() { - StringBuilder sb = new StringBuilder(); - if(dirtyComponents != null) - sb.append("" + dirtyComponents); - return sb.toString(); + return dirtyComponents != null ? dirtyComponents.toString() : ""; } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Mon Aug 11 21:07:57 2014 -0300 @@ -294,21 +294,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(' ').append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); - sb.append("]"); + sb.append(Integer.toString(childIndices[counter])).append(' '); + sb.append(']'); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); - sb.append("]"); + sb.append(children[counter]).append(' '); + sb.append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Mon Aug 11 21:07:57 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append('\n'); + htmlBuf.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Mon Aug 11 21:07:57 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append('\n'); + htmlStr.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Mon Aug 11 21:07:57 2014 -0300 @@ -2230,11 +2230,11 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append('\t'); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab - plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); + plainStr.deleteCharAt(plainStr.length() - 1).append('\t'); htmlStr.append("\n"); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Mon Aug 11 21:07:57 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append('\n'); + htmlStr.append("
  • ").append(label).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Mon Aug 11 21:07:57 2014 -0300 @@ -1160,15 +1160,15 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(' ').append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append('@') + .append(Integer.toString(rows[counter])).append(' '); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(' '); } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Mon Aug 11 21:07:57 2014 -0300 @@ -272,26 +272,25 @@ @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder sb = new StringBuilder(); //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + sb.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { - buf.append("unknown file format"); + sb.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + sb.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + sb.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + sb.append(", frame length: ").append(frameLength); } - - return new String(buf); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Mon Aug 11 21:07:57 2014 -0300 @@ -473,17 +473,21 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length) + .append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize) + .append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize) + .append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize) + .append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Mon Aug 11 21:07:57 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Mon Aug 11 21:07:57 2014 -0300 @@ -165,11 +165,11 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n"); - + StringBuilder str = new StringBuilder(); + str.append("Address Type: ").append(addrType).append('\n'); str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Mon Aug 11 21:07:57 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Mon Aug 11 21:07:57 2014 -0300 @@ -139,9 +139,9 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - - str.append("Content: " + getContent() + "\n"); + StringBuilder str = new StringBuilder(); + str.append("Type: ").append(addrType).append('\n'); + str.append("Content: ").append(getContent()).append('\n'); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Mon Aug 11 21:07:56 2014 -0300 @@ -369,22 +369,24 @@ * @return information about this CryptoPermission. */ public String toString() { - StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + StringBuilder sb = new StringBuilder(100); + sb.append("(CryptoPermission ").append(alg).append(' ') + .append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + sb.append(" , effective ") + .append(((RC2ParameterSpec) algParamSpec) + .getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + sb.append(" , rounds ").append( + ((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + sb.append(' ').append(exemptionMechanism); } - buf.append(")"); - return buf.toString(); + sb.append(')'); + return sb.toString(); } private boolean impliesExemptionMechanism(String exemptionMechanism) { -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Mon Aug 11 21:07:57 2014 -0300 @@ -455,11 +455,11 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append('#').append(member); if (objectName == null) name.append("[-]"); else - name.append("[").append(objectName.getCanonicalName()).append("]"); + name.append('[').append(objectName.getCanonicalName()).append(']'); /* In the interests of legibility for Permission.toString(), we transform the empty string into "*". */ diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Mon Aug 11 21:07:57 2014 -0300 @@ -716,15 +716,14 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { - retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); + retStr.append("\nMBEAN DESCRIPTOR: \t is invalid"); } retStr.append("\nATTRIBUTES"); @@ -734,13 +733,12 @@ for (int i=0; i objNameIter = objectNameList.iterator(); - objNameIter.hasNext();) { - ObjectName currObjName = objNameIter.next(); - result.append(currObjName.toString()); - if (objNameIter.hasNext()) { - result.append(", "); - } - } - return result.toString(); - } + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("role name: ").append(name).append("; role value: "); + for (Iterator objNameIter = objectNameList.iterator(); objNameIter + .hasNext();) { + ObjectName currObjName = objNameIter.next(); + sb.append(currObjName.toString()); + if (objNameIter.hasNext()) { + sb.append(", "); + } + } + return sb.toString(); + } // // Misc diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Mon Aug 11 21:07:57 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Mon Aug 11 21:07:57 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Mon Aug 11 21:07:56 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append(']'); + sb.append("[position=").append(position).append(']'); + sb.append("[match valid=").append(matchValid).append(']'); + sb.append("[need input=").append(needInput).append(']'); + sb.append("[source closed=").append(sourceClosed).append(']'); + sb.append("[skipped=").append(skipped).append(']'); + sb.append("[group separator=").append(groupSeparator).append(']'); + sb.append("[decimal separator=").append(decimalSeparator).append(']'); + sb.append("[positive prefix=").append(positivePrefix).append(']'); + sb.append("[negative prefix=").append(negativePrefix).append(']'); + sb.append("[positive suffix=").append(positiveSuffix).append(']'); + sb.append("[negative suffix=").append(negativeSuffix).append(']'); + sb.append("[NaN string=").append(nanString).append(']'); + sb.append("[infinity string=").append(infinityString).append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Mon Aug 11 21:07:56 2014 -0300 @@ -1295,14 +1295,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(',').append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Mon Aug 11 21:07:56 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append('|').append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append('|').append(produceEquivalentAlternation(next)); } return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Mon Aug 11 21:07:56 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Mon Aug 11 21:07:56 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Mon Aug 11 21:07:56 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(' ').append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(' ').append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Mon Aug 11 21:07:56 2014 -0300 @@ -610,8 +610,8 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ") + .append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Mon Aug 11 21:07:56 2014 -0300 @@ -176,20 +176,20 @@ * as described above. * */ - public String toString() { - Enumeration enum_ = elements(); - StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); - while (enum_.hasMoreElements()) { - try { - sb.append(" "); - sb.append(enum_.nextElement().toString()); - sb.append("\n"); - } catch (NoSuchElementException e){ - // ignore - } - } - sb.append(")\n"); - return sb.toString(); - } + public String toString() { + Enumeration enum_ = elements(); + StringBuilder sb = new StringBuilder(); + sb.append(super.toString()).append(" (\n"); + while (enum_.hasMoreElements()) { + try { + sb.append(' '); + sb.append(enum_.nextElement().toString()); + sb.append('\n'); + } catch (NoSuchElementException e) { + // ignore + } + } + sb.append(")\n"); + return sb.toString(); + } } diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Mon Aug 11 21:07:56 2014 -0300 @@ -285,34 +285,32 @@ /** * Convert a ProtectionDomain to a String. */ - @Override public String toString() { - String pals = ""; - if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + @Override + public String toString() { + String pals = ""; + if (principals != null && principals.length > 0) { + StringBuilder palBuilder = new StringBuilder("(principals "); - for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); - if (i < principals.length-1) - palBuf.append(",\n"); - else - palBuf.append(")\n"); - } - pals = palBuf.toString(); - } + for (int i = 0; i < principals.length; i++) { + palBuilder.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); + if (i < principals.length - 1) { + palBuilder.append(",\n"); + } else { + palBuilder.append(")\n"); + } + } + pals = palBuilder.toString(); + } - // Check if policy is set; we don't want to load - // the policy prematurely here - PermissionCollection pc = Policy.isSet() && seeAllp() ? - mergePermissions(): - getPermissions(); + // Check if policy is set; we don't want to load + // the policy prematurely here + PermissionCollection pc = Policy.isSet() && seeAllp() ? mergePermissions() + : getPermissions(); - return "ProtectionDomain "+ - " "+codesource+"\n"+ - " "+classloader+"\n"+ - " "+pals+"\n"+ - " "+pc+"\n"; + return "ProtectionDomain " + " " + codesource + "\n" + " " + + classloader + "\n" + " " + pals + "\n" + " " + pc + "\n"; } /** diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Mon Aug 11 21:07:56 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Mon Aug 11 21:07:56 2014 -0300 @@ -219,28 +219,24 @@ * * @return a string representation of this certification path */ - public String toString() { - StringBuilder sb = new StringBuilder(); - Iterator stringIterator = - getCertificates().iterator(); + public String toString() { + StringBuilder sb = new StringBuilder(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); - sb.append("[\n"); - int i = 1; - while (stringIterator.hasNext()) { - sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); - Certificate stringCert = stringIterator.next(); - sb.append(stringCert.toString()); - sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); - i++; - } + sb.append('\n').append(type).append(" Cert Path: length = ") + .append(getCertificates().size()).append(".\n").append("[\n"); + int i = 1; + for (Certificate stringCert : getCertificates()) { + sb.append("==========================================" + + "===============Certificate ").append(i).append(" start.\n"); + sb.append(stringCert.toString()); + sb.append("\n========================================" + + "=================Certificate ").append(i).append(" end.\n\n\n"); + i++; + } - sb.append("\n]"); - return sb.toString(); - } + sb.append("\n]"); + return sb.toString(); + } /** * Returns the encoded form of this certification path, using the default diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Mon Aug 11 21:07:56 2014 -0300 @@ -134,8 +134,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); - sb.append("]"); + sb.append(" collection: ").append(coll).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Mon Aug 11 21:07:56 2014 -0300 @@ -141,9 +141,9 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); - sb.append("]"); + sb.append(" serverName: ").append(serverName).append('\n'); + sb.append(" port: ").append(port).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Mon Aug 11 21:07:56 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Mon Aug 11 21:07:56 2014 -0300 @@ -108,12 +108,14 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); - sb.append("]"); + sb.append("PKIXCertPathBuilderResult: [\n"); + sb.append(" Certification Path: ").append(certPath).append('\n'); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()) + .append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())) + .append('\n'); + sb.append(" Subject Public Key: ").append(getPublicKey()).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Mon Aug 11 21:07:56 2014 -0300 @@ -150,10 +150,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); - sb.append("]"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append('\n'); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Mon Aug 11 21:07:56 2014 -0300 @@ -698,8 +698,7 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()).append('\n'); } /* now, append initial state information */ @@ -707,30 +706,37 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [") + .append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)) + .append('\n'); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)) + .append('\n'); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled) + .append('\n'); + sb.append(" Explicit Policy Required: ") + .append(explicitPolicyRequired).append('\n'); + sb.append(" Policy Mapping Inhibited: ") + .append(policyMappingInhibited).append('\n'); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited) + .append('\n'); + sb.append(" Policy Qualifiers Rejected: ") + .append(policyQualifiersRejected).append('\n'); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ") + .append(String.valueOf(certSelector)).append('\n'); /* finally, append miscellaneous parameters */ if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); + sb.append(" Certification Path Checkers: [").append(certPathCheckers.toString()).append("]\n"); if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); - sb.append("]"); + sb.append(" CertStores: [").append(certStores.toString()).append("]\n"); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Mon Aug 11 21:07:56 2014 -0300 @@ -163,10 +163,11 @@ HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); - sb.append("]"); + sb.append(" qualifierID: ").append(mId).append('\n'); + sb.append(" qualifier: ") + .append(mData == null ? "null" : enc.encodeBuffer(mData)) + .append('\n'); + sb.append(']'); pqiString = sb.toString(); return pqiString; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Mon Aug 11 21:07:56 2014 -0300 @@ -320,14 +320,18 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()) + .append('\n'); + sb.append(" Trusted CA Issuer Name: ") + .append(String.valueOf(caName)).append('\n'); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()) + .append('\n'); } - if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + if (nc != null) { + sb.append(" Name Constraints: ").append(nc.toString()) + .append('\n'); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Mon Aug 11 21:07:56 2014 -0300 @@ -572,17 +572,17 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append('\n'); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append('\n'); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append('\n'); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); - sb.append("]"); + sb.append(" Certificate being checked: ").append(certChecking).append('\n'); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Mon Aug 11 21:07:56 2014 -0300 @@ -1814,72 +1814,67 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()).append('\n'); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()) + .append('\n'); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append('\n'); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append('\n'); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)) + .append('\n'); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ") + .append(list.get(1)).append('\n'); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ").append(enc.encodeBuffer(subjectKeyID)).append('\n'); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ").append(enc.encodeBuffer(authorityKeyID)).append('\n'); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ").append(certificateValid.toString()).append('\n'); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ").append(privateKeyValid.toString()).append('\n'); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ").append(subjectPublicKeyAlgID.toString()).append('\n'); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ").append(subjectPublicKey.toString()).append('\n'); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)).append('\n'); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ").append(keyPurposeSet.toString()).append('\n'); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append('\n'); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Mon Aug 11 21:07:56 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Mon Aug 11 21:07:56 2014 -0300 @@ -237,13 +237,16 @@ * Returns a descriptive representation of this memory usage. */ public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); - return buf.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("init = ").append(init).append('(').append(init >> 10) + .append("K) "); + sb.append("used = ").append(used).append('(').append(used >> 10) + .append("K) "); + sb.append("committed = ").append(committed).append('(') + .append(committed >> 10).append("K) "); + sb.append("max = ").append(max).append('(').append(max >> 10) + .append("K)"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Mon Aug 11 21:07:56 2014 -0300 @@ -579,15 +579,17 @@ * @return a string representation of this thread info. */ public String toString() { - StringBuilder sb = new StringBuilder("\"" + getThreadName() + "\"" + - " Id=" + getThreadId() + " " + - getThreadState()); + StringBuilder sb = new StringBuilder(); + sb.append('"').append(getThreadName()).append('"') + .append(" Id=").append(getThreadId()).append(' ') + .append(getThreadState()); + if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +601,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +624,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +636,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Mon Aug 11 21:07:55 2014 -0300 @@ -137,8 +137,11 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:") + .append(LINE_SEP).append(" ") + .append(this.l); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Mon Aug 11 21:07:55 2014 -0300 @@ -268,8 +268,10 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:").append(LINE_SEP) + .append(" ").append(this.l); + } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Mon Aug 11 21:07:55 2014 -0300 @@ -140,7 +140,8 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP) + .append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Mon Aug 11 21:07:55 2014 -0300 @@ -238,11 +238,12 @@ } protected String engineToString() { - StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("MD: ").append(mdName).append('\n'); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()) + .append('\n'); + sb.append("PSource: PSpecified ").append(p.length == 0 ? "" : + Debug.toHexString(new BigInteger(p))).append('\n'); + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Mon Aug 11 21:07:55 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Mon Aug 11 21:07:55 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(':'); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Mon Aug 11 21:07:55 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Mon Aug 11 21:07:55 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append('.').append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Mon Aug 11 21:07:55 2014 -0300 @@ -420,7 +420,7 @@ t= { jjtn000.name.append(t.image); } ( "." t= - {jjtn000.name.append( "." + t.image); } + {jjtn000.name.append( '.')append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -447,7 +447,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -501,7 +501,7 @@ {jjtn000.address.append(t.image); } ( "!" t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -527,7 +527,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )* "/" t= /*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Mon Aug 11 21:07:55 2014 -0300 @@ -213,7 +213,7 @@ t= { jjtThis.name.append(t.image); } ( "." t= - {jjtThis.name.append( "." + t.image); } + {jjtThis.name.append( '.').append(t.image); } )* } @@ -228,7 +228,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -253,7 +253,7 @@ {jjtThis.address.append(t.image); } ( "!" t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -267,7 +267,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* "/" t= {jjtThis.mask = t.image; } } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Mon Aug 11 21:07:55 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Mon Aug 11 21:07:55 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append('\n'); + sb.append("msgMaxSize : ").append(msgMaxSize).append('\n'); + sb.append("msgFlags : ").append(msgFlags).append('\n'); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append('\n'); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Mon Aug 11 21:07:55 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Mon Aug 11 21:07:55 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(','); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Mon Aug 11 21:07:55 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(' '); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(' '); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Mon Aug 11 21:07:55 2014 -0300 @@ -235,14 +235,15 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(' ').append(nodeName).append("=\"") + .append(att.getNodeValue()).append('"'); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append('>').append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Mon Aug 11 21:07:55 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(' '); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Mon Aug 11 21:07:55 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(','); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append('+'); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Mon Aug 11 21:07:55 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Mon Aug 11 21:07:55 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Mon Aug 11 21:07:55 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Mon Aug 11 21:07:55 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Mon Aug 11 21:07:55 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { @@ -349,14 +349,4 @@ } } - private String appendPath(String path1, String path2) { - if (path1 == null || path1.length() == 0) { - return path2 == null ? "." : path2; - } else if (path2 == null || path2.length() == 0) { - return path1; - } else { - return path1 + File.pathSeparator + path2; - } - } - } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Mon Aug 11 21:07:55 2014 -0300 @@ -346,12 +346,12 @@ public String valueString(boolean bigLimit) { // Char arrays deserve special treatment - StringBuffer result; + StringBuilder result; byte[] value = getValue(); int max = value.length; byte elementSignature = getElementType(); if (elementSignature == 'C') { - result = new StringBuffer(); + result = new StringBuilder(); for (int i = 0; i < value.length; ) { char val = charAt(i, value); result.append(val); @@ -362,7 +362,7 @@ if (bigLimit) { limit = 1000; } - result = new StringBuffer("{"); + result = new StringBuilder("{"); int num = 0; for (int i = 0; i < value.length; ) { if (num > 0) { @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } @@ -425,7 +425,7 @@ } } } - result.append("}"); + result.append('}'); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Mon Aug 11 21:07:55 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(';'); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Mon Aug 11 21:07:55 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append('\''); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { From raghu.k.nair at oracle.com Tue Aug 12 04:23:18 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Tue, 12 Aug 2014 09:53:18 +0530 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice In-Reply-To: References: <53DF3226.7010601@oracle.com> Message-ID: <53E996B6.6040105@oracle.com> Hello , Please find the updated the webrev . http://cr.openjdk.java.net/~rhalade/8048362/webrev.02/ Thanks, Raghu On 8/8/2014 7:21 PM, Vincent Ryan wrote: > Code looks fine. > I noticed a few typos: DoPrivTest.java l.26 and DoPrivAccompliceTest.java l.34-38 > > > On 4 Aug 2014, at 08:11, raghu k.nair wrote: > >> Hello , >> Please review the updated tests for doPrivilaged with accomplice. Updated the test to use @compile tag rather than compiling using API. >> >> Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 >> webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ >> >> Thanks, >> Raghu >> From raghu.k.nair at oracle.com Tue Aug 12 04:58:26 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Tue, 12 Aug 2014 10:28:26 +0530 Subject: Review request for CR 8049039 Need new tests for sun.securiy.x509 classes Message-ID: <53E99EF2.8010900@oracle.com> Hello, Please review the tests for sun.security.x509 classes. These cover tests for GeneralName, GeneralNames, GeneralSubtree, GeneralSubtrees, IPAddressName and IssuerAlternativeNameExtension. webrev: http://cr.openjdk.java.net/~rhalade/8049039/webrev.00/ Bug: https://bugs.openjdk.java.net/browse/JDK-8049039 Thanks, Raghu Nair From andrej.golovnin at gmail.com Tue Aug 12 07:48:00 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Tue, 12 Aug 2014 09:48:00 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> Message-ID: Hi Ot?vio, I think you should fix the indentation in a lot of classes. You use the tab-character for the indentation. As far as I know we should use the space character for the indentation in the JDK sources (Oracle devs feel free to correct me if I'm wrong. And it would be really nice if the style guide for the source code would be a part of the JDK repository. So we don't need to search for it on the internet/wiki. Just clone the repository, read the style guide and follow it. :-) ). Here is the not complete list of classes where you used the tab-character for the indentation: src/share/classes/com/sun/crypto/provider/OAEPParameters.java src/share/classes/java/lang/management/MemoryUsage.java src/share/classes/java/security/KeyStore.java src/share/classes/java/security/PermissionCollection.java src/share/classes/java/security/ProtectionDomain.java src/share/classes/java/security/cert/CertPath.java src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java src/share/classes/java/security/cert/PKIXParameters.java src/share/classes/java/security/cert/PolicyQualifierInfo.java src/share/classes/java/security/cert/TrustAnchor.java src/share/classes/java/security/cert/X509CertSelector.java src/share/classes/javax/crypto/CryptoPermission.java src/share/classes/javax/management/relation/Role.java In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a dot is missed before append: 423 {jjtn000.name.append( '.')append(t.image); } Best regards, Andrej Golovnin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Tue Aug 12 08:02:55 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 12 Aug 2014 16:02:55 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> Message-ID: No TAB, no \r, and no trailing space are hard requirements enforced by jcheck. Otherwise it's only styles, including 4-space-indentation. "{" at the end of a line, 8-space wrap indentation... --Max (an Oracle dev) On Aug 12, 2014, at 15:48, Andrej Golovnin wrote: > As far as I know we should use the space character for the indentation in the JDK sources (Oracle devs feel free to correct me if I'm wrong. From peter.firmstone at zeus.net.au Tue Aug 12 09:03:53 2014 From: peter.firmstone at zeus.net.au (Peter Firmstone) Date: Tue, 12 Aug 2014 19:03:53 +1000 Subject: The future of Serialization In-Reply-To: <53E8D0AC.3060108@oracle.com> References: <1407563776.1841.30.camel@Nokia-N900> <53E8A71D.70407@oracle.com> <53E8B1D8.1000200@zeus.net.au> <53E8D0AC.3060108@oracle.com> Message-ID: <1407834233.6396.10.camel@Nokia-N900> Interesting, language features for modules, won't necessarily involve ClassLoader's (my assumptions were based on existing systems) although you'd expect modules to have their own ProtectionDomain. An alternative to isolates, is separate processes with jvm class sharing enabled. I'll keep an eye out for the JSR. When is a better timeframe, roughly, to discuss Serializable? Regards, Peter. ----- Original message ----- > On 11/08/2014 13:06, Peter Firmstone wrote: > > Thanks Alan, I can relate to time poverty :) > > > > I might be assuming too much, but if there's interest in doing > > something with Serialization, I'd be interested in learning about > > plans or difficulties involved in deserialization and modules. It can > > be a little more difficult to find the correct ClassLoader to resolve > > classes during deserialization when ClassLoader relationships aren't > > hierarchial.? Object streams can be annotated with module information > > to assist resolution. > The issues around visibility when deserializing are somewhat independent > of modules. The usual way to deal with such matters is to override the > resolveClass method. Another long standing suggestion is for > ObjectInputStream to define a new constructor that takes a class loader > to avoid the stack walk to get the user-defined loader. It remains to > seen but if we can avoid changing visibility then we don't change the > status quo. > > : > > > > Got any links to info on extending access control rules? > Not yet, a future JSR will define the standard module system and there > will be a corresponding JEP for the implementation. > > -Alan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Tue Aug 12 13:16:35 2014 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 12 Aug 2014 06:16:35 -0700 Subject: [8u40] Request for approval: 8035974 Refactor DigestBase.engineUpdate() method for better code generation by JIT compiler In-Reply-To: <53E9D839.1070107@oracle.com> References: <53E91AFB.5080504@oracle.com> <53E9D839.1070107@oracle.com> Message-ID: <53EA13B3.1040601@oracle.com> Thank you! Vladimir On 8/12/14 2:02 AM, dalibor topic wrote: > Approved. > > cheers, > dalibor topic > > On 11.08.2014 21:35, Vladimir Kozlov wrote: >> Requesting approval for the backport of JDK-8035974. The change was >> pushed to jdk 9 in May and it is applied cleanly to jdk8u sources: >> >> Main RFE: https://bugs.openjdk.java.net/browse/JDK-8035974 >> Changeset: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/dabb44358772 >> Review: >> http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-May/026945.html >> >> Corresponding Hotspot changes (8035968+8035974) will be pushed through >> jdk8u/hs-dev as usual. >> >> Thanks, >> Vladimir > From sean.mullan at oracle.com Tue Aug 12 15:08:21 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 12 Aug 2014 11:08:21 -0400 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required Message-ID: <53EA2DE5.9060507@oracle.com> This is a clarification in the javax.security.auth.Subject javadocs to indicate what permissions are required for methods that throw SecurityException: http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.00/ I also took the opportunity to fix a couple of other minor issues: added @Override annotations, removed spurious

    tags, and changed @exception to @throws. Thanks, Sean From raghu.k.nair at oracle.com Tue Aug 12 17:36:56 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Tue, 12 Aug 2014 23:06:56 +0530 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice In-Reply-To: References: <53DF3226.7010601@oracle.com> Message-ID: <53EA50B8.10901@oracle.com> Hello , The latest webrev is available at http://cr.openjdk.java.net/~rhalade/8048362/webrev.03/ The changes include review comments from Vinnie . Thanks, Raghu On 8/8/2014 7:21 PM, Vincent Ryan wrote: > Code looks fine. > I noticed a few typos: DoPrivTest.java l.26 and DoPrivAccompliceTest.java l.34-38 > > > On 4 Aug 2014, at 08:11, raghu k.nair wrote: > >> Hello , >> Please review the updated tests for doPrivilaged with accomplice. Updated the test to use @compile tag rather than compiling using API. >> >> Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 >> webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ >> >> Thanks, >> Raghu >> From dalibor.topic at oracle.com Tue Aug 12 09:02:49 2014 From: dalibor.topic at oracle.com (dalibor topic) Date: Tue, 12 Aug 2014 11:02:49 +0200 Subject: [8u40] Request for approval: 8035974 Refactor DigestBase.engineUpdate() method for better code generation by JIT compiler In-Reply-To: <53E91AFB.5080504@oracle.com> References: <53E91AFB.5080504@oracle.com> Message-ID: <53E9D839.1070107@oracle.com> Approved. cheers, dalibor topic On 11.08.2014 21:35, Vladimir Kozlov wrote: > Requesting approval for the backport of JDK-8035974. The change was > pushed to jdk 9 in May and it is applied cleanly to jdk8u sources: > > Main RFE: https://bugs.openjdk.java.net/browse/JDK-8035974 > Changeset: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/dabb44358772 > Review: > http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-May/026945.html > > Corresponding Hotspot changes (8035968+8035974) will be pushed through > jdk8u/hs-dev as usual. > > Thanks, > Vladimir -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Gesch?ftsf?hrer: J?rgen Kunz Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Astrid Kepper, Val Maher Oracle is committed to developing practices and products that help protect the environment From otaviojava at java.net Tue Aug 12 11:51:47 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Tue, 12 Aug 2014 08:51:47 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> Message-ID: Thank you Andrej Done. https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_5.zip On Tue, Aug 12, 2014 at 4:48 AM, Andrej Golovnin wrote: > Hi Ot?vio, > > I think you should fix the indentation in a lot of classes. You use the > tab-character for the indentation. As far as I know we should use the space > character for the indentation in the JDK sources (Oracle devs feel free to > correct me if I'm wrong. And it would be really nice if the style guide for > the source code would be a part of the JDK repository. So we don't need to > search for it on the internet/wiki. Just clone the repository, read the > style guide and follow it. :-) ). Here is the not complete list of classes > where you used the tab-character for the indentation: > > src/share/classes/com/sun/crypto/provider/OAEPParameters.java > src/share/classes/java/lang/management/MemoryUsage.java > src/share/classes/java/security/KeyStore.java > src/share/classes/java/security/PermissionCollection.java > src/share/classes/java/security/ProtectionDomain.java > src/share/classes/java/security/cert/CertPath.java > src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java > src/share/classes/java/security/cert/PKIXParameters.java > src/share/classes/java/security/cert/PolicyQualifierInfo.java > src/share/classes/java/security/cert/TrustAnchor.java > src/share/classes/java/security/cert/X509CertSelector.java > src/share/classes/javax/crypto/CryptoPermission.java > src/share/classes/javax/management/relation/Role.java > > > In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a > dot is missed before append: > > 423 {jjtn000.name.append( '.')append(t.image); } > > Best regards, > Andrej Golovnin > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -137,8 +137,11 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:") + .append(LINE_SEP).append(" ") + .append(this.l); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 12 08:47:10 2014 -0300 @@ -268,8 +268,10 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:").append(LINE_SEP) + .append(" ").append(this.l); + } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -140,7 +140,8 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP) + .append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -239,10 +239,12 @@ protected String engineToString() { StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); + sb.append("MD: ").append(mdName).append('\n'); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()) + .append('\n'); + sb.append("PSource: PSpecified ") + .append(p.length == 0 ? "" : Debug + .toHexString(new BigInteger(p))).append('\n'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 12 08:47:10 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(':'); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 12 08:47:10 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 12 08:47:10 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append('.').append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Tue Aug 12 08:47:10 2014 -0300 @@ -420,7 +420,7 @@ t= { jjtn000.name.append(t.image); } ( "." t= - {jjtn000.name.append( "." + t.image); } + {jjtn000.name.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -447,7 +447,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -501,7 +501,7 @@ {jjtn000.address.append(t.image); } ( "!" t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -527,7 +527,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )* "/" t= /*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Tue Aug 12 08:47:10 2014 -0300 @@ -213,7 +213,7 @@ t= { jjtThis.name.append(t.image); } ( "." t= - {jjtThis.name.append( "." + t.image); } + {jjtThis.name.append( '.').append(t.image); } )* } @@ -228,7 +228,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -253,7 +253,7 @@ {jjtThis.address.append(t.image); } ( "!" t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -267,7 +267,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* "/" t= {jjtThis.mask = t.image; } } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 12 08:47:10 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 12 08:47:10 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append('\n'); + sb.append("msgMaxSize : ").append(msgMaxSize).append('\n'); + sb.append("msgFlags : ").append(msgFlags).append('\n'); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append('\n'); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 12 08:47:10 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 12 08:47:10 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(','); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 12 08:47:10 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(' '); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(' '); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 12 08:47:10 2014 -0300 @@ -235,14 +235,15 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(' ').append(nodeName).append("=\"") + .append(att.getNodeValue()).append('"'); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append('>').append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 12 08:47:10 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(' '); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 12 08:47:10 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(','); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append('+'); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 12 08:47:10 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 12 08:47:10 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 12 08:47:10 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 12 08:47:10 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 12 08:47:10 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { @@ -349,14 +349,4 @@ } } - private String appendPath(String path1, String path2) { - if (path1 == null || path1.length() == 0) { - return path2 == null ? "." : path2; - } else if (path2 == null || path2.length() == 0) { - return path1; - } else { - return path1 + File.pathSeparator + path2; - } - } - } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 12 08:47:10 2014 -0300 @@ -346,12 +346,12 @@ public String valueString(boolean bigLimit) { // Char arrays deserve special treatment - StringBuffer result; + StringBuilder result; byte[] value = getValue(); int max = value.length; byte elementSignature = getElementType(); if (elementSignature == 'C') { - result = new StringBuffer(); + result = new StringBuilder(); for (int i = 0; i < value.length; ) { char val = charAt(i, value); result.append(val); @@ -362,7 +362,7 @@ if (bigLimit) { limit = 1000; } - result = new StringBuffer("{"); + result = new StringBuilder("{"); int num = 0; for (int i = 0; i < value.length; ) { if (num > 0) { @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } @@ -425,7 +425,7 @@ } } } - result.append("}"); + result.append('}'); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 12 08:47:10 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(';'); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 12 08:47:10 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append('\''); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 12 08:47:10 2014 -0300 @@ -237,13 +237,16 @@ * Returns a descriptive representation of this memory usage. */ public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); - return buf.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("init = ").append(init).append('(').append(init >> 10) + .append("K) "); + sb.append("used = ").append(used).append('(').append(used >> 10) + .append("K) "); + sb.append("committed = ").append(committed).append('(') + .append(committed >> 10).append("K) "); + sb.append("max = ").append(max).append('(').append(max >> 10) + .append("K)"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 12 08:47:10 2014 -0300 @@ -579,15 +579,17 @@ * @return a string representation of this thread info. */ public String toString() { - StringBuilder sb = new StringBuilder("\"" + getThreadName() + "\"" + - " Id=" + getThreadId() + " " + - getThreadState()); + StringBuilder sb = new StringBuilder(); + sb.append('"').append(getThreadName()).append('"') + .append(" Id=").append(getThreadId()).append(' ') + .append(getThreadState()); + if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +601,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +624,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +636,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 12 08:47:10 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Tue Aug 12 08:47:10 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Tue Aug 12 08:47:10 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(' ').append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(' ').append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Tue Aug 12 08:47:10 2014 -0300 @@ -610,8 +610,8 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ") + .append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Tue Aug 12 08:47:10 2014 -0300 @@ -179,13 +179,13 @@ public String toString() { Enumeration enum_ = elements(); StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); + sb.append(super.toString()).append(" (\n"); while (enum_.hasMoreElements()) { try { - sb.append(" "); + sb.append(' '); sb.append(enum_.nextElement().toString()); - sb.append("\n"); - } catch (NoSuchElementException e){ + sb.append('\n'); + } catch (NoSuchElementException e) { // ignore } } diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Tue Aug 12 08:47:10 2014 -0300 @@ -285,34 +285,32 @@ /** * Convert a ProtectionDomain to a String. */ - @Override public String toString() { + @Override + public String toString() { String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palBuilder = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); - if (i < principals.length-1) - palBuf.append(",\n"); - else - palBuf.append(")\n"); + palBuilder.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); + if (i < principals.length - 1) { + palBuilder.append(",\n"); + } else { + palBuilder.append(")\n"); + } } - pals = palBuf.toString(); + pals = palBuilder.toString(); } // Check if policy is set; we don't want to load // the policy prematurely here - PermissionCollection pc = Policy.isSet() && seeAllp() ? - mergePermissions(): - getPermissions(); + PermissionCollection pc = Policy.isSet() && seeAllp() ? mergePermissions() + : getPermissions(); - return "ProtectionDomain "+ - " "+codesource+"\n"+ - " "+classloader+"\n"+ - " "+pals+"\n"+ - " "+pc+"\n"; + return "ProtectionDomain " + " " + codesource + "\n" + " " + + classloader + "\n" + " " + pals + "\n" + " " + pc + "\n"; } /** diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Tue Aug 12 08:47:10 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Tue Aug 12 08:47:10 2014 -0300 @@ -221,20 +221,16 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - Iterator stringIterator = - getCertificates().iterator(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); - sb.append("[\n"); + sb.append('\n').append(type).append(" Cert Path: length = ") + .append(getCertificates().size()).append(".\n").append("[\n"); int i = 1; - while (stringIterator.hasNext()) { + for (Certificate stringCert : getCertificates()) { sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); - Certificate stringCert = stringIterator.next(); + + "===============Certificate ").append(i).append(" start.\n"); sb.append(stringCert.toString()); sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); + + "=================Certificate ").append(i).append(" end.\n\n\n"); i++; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -134,8 +134,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); - sb.append("]"); + sb.append(" collection: ").append(coll).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -141,9 +141,9 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); - sb.append("]"); + sb.append(" serverName: ").append(serverName).append('\n'); + sb.append(" port: ").append(port).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 12 08:47:10 2014 -0300 @@ -109,11 +109,13 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); - sb.append("]"); + sb.append(" Certification Path: ").append(certPath).append('\n'); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()) + .append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())) + .append('\n'); + sb.append(" Subject Public Key: ").append(getPublicKey()).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 12 08:47:10 2014 -0300 @@ -150,10 +150,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); - sb.append("]"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append('\n'); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 12 08:47:10 2014 -0300 @@ -698,8 +698,8 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()) + .append('\n'); } /* now, append initial state information */ @@ -707,30 +707,41 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [") + .append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)) + .append('\n'); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)) + .append('\n'); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled) + .append('\n'); + sb.append(" Explicit Policy Required: ") + .append(explicitPolicyRequired).append('\n'); + sb.append(" Policy Mapping Inhibited: ") + .append(policyMappingInhibited).append('\n'); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited) + .append('\n'); + sb.append(" Policy Qualifiers Rejected: ") + .append(policyQualifiersRejected).append('\n'); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ") + .append(String.valueOf(certSelector)).append('\n'); /* finally, append miscellaneous parameters */ - if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); - if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); - sb.append("]"); + if (certPathCheckers != null) { + sb.append(" Certification Path Checkers: [") + .append(certPathCheckers.toString()).append("]\n"); + } + if (certStores != null) { + sb.append(" CertStores: [").append(certStores.toString()) + .append("]\n"); + } + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 12 08:47:10 2014 -0300 @@ -158,15 +158,17 @@ * {@code PolicyQualifierInfo} */ public String toString() { - if (pqiString != null) + if (pqiString != null) { return pqiString; + } HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); - sb.append("]"); + sb.append(" qualifierID: ").append(mId).append('\n'); + sb.append(" qualifier: ") + .append(mData == null ? "null" : enc.encodeBuffer(mData)) + .append('\n'); + sb.append(']'); pqiString = sb.toString(); return pqiString; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 12 08:47:10 2014 -0300 @@ -320,14 +320,18 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()) + .append('\n'); + sb.append(" Trusted CA Issuer Name: ") + .append(String.valueOf(caName)).append('\n'); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()) + .append('\n'); } - if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + if (nc != null) { + sb.append(" Name Constraints: ").append(nc.toString()) + .append('\n'); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 12 08:47:10 2014 -0300 @@ -572,17 +572,17 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append('\n'); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append('\n'); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append('\n'); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); - sb.append("]"); + sb.append(" Certificate being checked: ").append(certChecking).append('\n'); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 12 08:47:10 2014 -0300 @@ -1814,72 +1814,75 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()) + .append('\n'); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()) + .append('\n'); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append('\n'); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append('\n'); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)).append('\n'); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ") + .append(list.get(1)).append('\n'); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ") + .append(enc.encodeBuffer(subjectKeyID)).append('\n'); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ") + .append(enc.encodeBuffer(authorityKeyID)).append('\n'); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ") + .append(certificateValid.toString()).append('\n'); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ") + .append(privateKeyValid.toString()).append('\n'); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ") + .append(subjectPublicKeyAlgID.toString()).append('\n'); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ") + .append(subjectPublicKey.toString()).append('\n'); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)) + .append('\n'); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ") + .append(keyPurposeSet.toString()).append('\n'); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append('\n'); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Tue Aug 12 08:47:11 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Tue Aug 12 08:47:11 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append(']'); + sb.append("[position=").append(position).append(']'); + sb.append("[match valid=").append(matchValid).append(']'); + sb.append("[need input=").append(needInput).append(']'); + sb.append("[source closed=").append(sourceClosed).append(']'); + sb.append("[skipped=").append(skipped).append(']'); + sb.append("[group separator=").append(groupSeparator).append(']'); + sb.append("[decimal separator=").append(decimalSeparator).append(']'); + sb.append("[positive prefix=").append(positivePrefix).append(']'); + sb.append("[negative prefix=").append(negativePrefix).append(']'); + sb.append("[positive suffix=").append(positiveSuffix).append(']'); + sb.append("[negative suffix=").append(negativeSuffix).append(']'); + sb.append("[NaN string=").append(nanString).append(']'); + sb.append("[infinity string=").append(infinityString).append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Tue Aug 12 08:47:11 2014 -0300 @@ -1295,14 +1295,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(',').append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Tue Aug 12 08:47:11 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append('|').append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append('|').append(produceEquivalentAlternation(next)); } return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Tue Aug 12 08:47:11 2014 -0300 @@ -455,11 +455,11 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append('#').append(member); if (objectName == null) name.append("[-]"); else - name.append("[").append(objectName.getCanonicalName()).append("]"); + name.append('[').append(objectName.getCanonicalName()).append(']'); /* In the interests of legibility for Permission.toString(), we transform the empty string into "*". */ diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 12 08:47:11 2014 -0300 @@ -716,15 +716,14 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { - retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); + retStr.append("\nMBEAN DESCRIPTOR: \t is invalid"); } retStr.append("\nATTRIBUTES"); @@ -734,13 +733,12 @@ for (int i=0; i objNameIter = objectNameList.iterator(); - objNameIter.hasNext();) { + StringBuilder sb = new StringBuilder(); + sb.append("role name: ").append(name).append("; role value: "); + for (Iterator objNameIter = objectNameList.iterator(); objNameIter + .hasNext();) { ObjectName currObjName = objNameIter.next(); - result.append(currObjName.toString()); + sb.append(currObjName.toString()); if (objNameIter.hasNext()) { - result.append(", "); + sb.append(", "); } } - return result.toString(); + return sb.toString(); } // diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 12 08:47:11 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 12 08:47:11 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 12 08:47:11 2014 -0300 @@ -369,22 +369,24 @@ * @return information about this CryptoPermission. */ public String toString() { - StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + StringBuilder sb = new StringBuilder(100); + sb.append("(CryptoPermission ").append(alg).append(' ') + .append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + sb.append(" , effective ") + .append(((RC2ParameterSpec) algParamSpec) + .getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + sb.append(" , rounds ").append( + ((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + sb.append(' ').append(exemptionMechanism); } - buf.append(")"); - return buf.toString(); + sb.append(')'); + return sb.toString(); } private boolean impliesExemptionMechanism(String exemptionMechanism) { -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 12 08:47:11 2014 -0300 @@ -165,11 +165,11 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n"); - + StringBuilder str = new StringBuilder(); + str.append("Address Type: ").append(addrType).append('\n'); str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Tue Aug 12 08:47:11 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Tue Aug 12 08:47:11 2014 -0300 @@ -139,9 +139,9 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - - str.append("Content: " + getContent() + "\n"); + StringBuilder str = new StringBuilder(); + str.append("Type: ").append(addrType).append('\n'); + str.append("Content: ").append(getContent()).append('\n'); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 12 08:47:11 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 12 08:47:11 2014 -0300 @@ -272,26 +272,25 @@ @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder sb = new StringBuilder(); //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + sb.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { - buf.append("unknown file format"); + sb.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + sb.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + sb.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + sb.append(", frame length: ").append(frameLength); } - - return new String(buf); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 12 08:47:11 2014 -0300 @@ -473,17 +473,21 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length) + .append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize) + .append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize) + .append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize) + .append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Tue Aug 12 08:47:12 2014 -0300 @@ -1213,15 +1213,15 @@ registerComponents(horizontalGroup, HORIZONTAL); registerComponents(verticalGroup, VERTICAL); } - StringBuffer buffer = new StringBuffer(); - buffer.append("HORIZONTAL\n"); - createSpringDescription(buffer, horizontalGroup, " ", HORIZONTAL); - buffer.append("\nVERTICAL\n"); - createSpringDescription(buffer, verticalGroup, " ", VERTICAL); - return buffer.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("HORIZONTAL\n"); + createSpringDescription(sb, horizontalGroup, " ", HORIZONTAL); + sb.append("\nVERTICAL\n"); + createSpringDescription(sb, verticalGroup, " ", VERTICAL); + return sb.toString(); } - private void createSpringDescription(StringBuffer buffer, Spring spring, + private void createSpringDescription(StringBuilder sb, Spring spring, String indent, int axis) { String origin = ""; String padding = ""; @@ -1239,20 +1239,19 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + sb.append(indent).append(spring.getClass().getName()).append(' ') + .append(Integer.toHexString(spring.hashCode())).append(' ') + .append(origin).append(", size=").append(spring.getSize()) + .append(", alignment=").append(spring.getAlignment()) + .append(" prefs=[").append(spring.getMinimumSize(axis)) + .append(' ').append(spring.getPreferredSize(axis)).append(' ') + .append(spring.getMaximumSize(axis)).append(padding) + .append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; for (int counter = 0; counter < springs.size(); counter++) { - createSpringDescription(buffer, springs.get(counter), indent, + createSpringDescription(sb, springs.get(counter), indent, axis); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Tue Aug 12 08:47:12 2014 -0300 @@ -542,19 +542,19 @@ * * @return a string representation of this JColorChooser */ - protected String paramString() { - StringBuilder chooserPanelsString = new StringBuilder(""); - for (int i=0; i keys = keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); - } - int length = sb.length(); - if (length > 1) { - sb.delete(length-2, length); - } - sb.append("}"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("{"); + Enumeration keys = keys(); + while (keys.hasMoreElements()) { + Object key = keys.nextElement(); + sb.append(key).append('=').append(get(key)).append(", "); + } + int length = sb.length(); + if (length > 1) { + sb.delete(length - 2, length); + } + sb.append('}'); + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Tue Aug 12 08:47:12 2014 -0300 @@ -990,10 +990,7 @@ * @return a String representation of this object */ public synchronized String toString() { - StringBuilder sb = new StringBuilder(); - if(dirtyComponents != null) - sb.append("" + dirtyComponents); - return sb.toString(); + return dirtyComponents != null ? dirtyComponents.toString() : ""; } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 12 08:47:12 2014 -0300 @@ -294,21 +294,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(' ').append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); - sb.append("]"); + sb.append(Integer.toString(childIndices[counter])).append(' '); + sb.append(']'); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); - sb.append("]"); + sb.append(children[counter]).append(' '); + sb.append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 12 08:47:12 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append('\n'); + htmlBuf.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 12 08:47:12 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append('\n'); + htmlStr.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 12 08:47:12 2014 -0300 @@ -2230,11 +2230,11 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append('\t'); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab - plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); + plainStr.deleteCharAt(plainStr.length() - 1).append('\t'); htmlStr.append("\n"); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 12 08:47:12 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append('\n'); + htmlStr.append("
  • ").append(label).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 12 08:47:12 2014 -0300 @@ -1160,15 +1160,15 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(' ').append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append('@') + .append(Integer.toString(rows[counter])).append(' '); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(' '); } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Tue Aug 12 08:47:12 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append(']'); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Tue Aug 12 08:47:12 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 12 08:47:12 2014 -0300 @@ -1894,9 +1894,9 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(' ').append(e.getMessage()); } - buf.append("}"); + buf.append('}'); return buf; } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 12 08:47:12 2014 -0300 @@ -369,10 +369,9 @@ static void appendVmErgoMessage(boolean isServerClass, String vm) { outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); - outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") - : outBuf.append(".\n\n"); + outBuf = (isServerClass) ? outBuf.append(",\n") + .append(getLocalizedMessage("java.launcher.ergo.message2")) + .append("\n\n") : outBuf.append(".\n\n"); } /** -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Tue Aug 12 08:47:12 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(' ').append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 12 08:47:12 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 12 08:47:12 2014 -0300 @@ -463,12 +463,12 @@ // --------- - private static void appendIfLiteralAddress(String addr, StringBuffer sb) { + private static void appendIfLiteralAddress(String addr, StringBuilder sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(' '); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } @@ -478,7 +478,7 @@ * corresponding to the supplied List of nameservers. */ private static String createProviderURL(List nsList) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (String s: nsList) { appendIfLiteralAddress(s, sb); } @@ -491,7 +491,7 @@ * contained in the provided str. */ private static String createProviderURL(String str) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(str, ","); while (st.hasMoreTokens()) { appendIfLiteralAddress(st.nextToken(), sb); diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 12 08:47:12 2014 -0300 @@ -220,21 +220,23 @@ public String toString () { Iterator k = keys(); - StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + StringBuilder sb = new StringBuilder(); + sb.append("{size=").append(asize).append(" nkeys=").append(nkeys) + .append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sb.append(" {").append(key).append(val == null ? "" : "," + val) + .append('}'); if (k.hasNext()) { - sbuf.append (","); + sb.append (','); } } - sbuf.append (" }"); - return new String (sbuf); + sb.append (" }"); + return new String (sb); } public int findInt(String k, int Default) { diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 12 08:47:12 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 12 08:47:12 2014 -0300 @@ -137,26 +137,30 @@ /** * Return a string representation of the contents of the ACL entry. */ - public String toString() { - StringBuffer s = new StringBuffer(); - if (negative) - s.append("-"); - else - s.append("+"); - if (user instanceof Group) - s.append("Group."); - else - s.append("User."); - s.append(user + "="); - Enumeration e = permissions(); - while(e.hasMoreElements()) { - Permission p = e.nextElement(); - s.append(p); - if (e.hasMoreElements()) - s.append(","); - } - return new String(s); - } + public String toString() { + StringBuffer sb = new StringBuffer(); + if (negative) { + sb.append('-'); + } else { + sb.append('+'); + } + if (user instanceof Group) { + sb.append("Group."); + } else { + sb.append("User."); + } + sb.append(user).append('='); + + Enumeration e = permissions(); + while (e.hasMoreElements()) { + Permission p = e.nextElement(); + sb.append(p); + if (e.hasMoreElements()) { + sb.append(','); + } + } + return sb.toString(); + } /** * Clones an AclEntry. diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 12 08:47:12 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 12 08:47:12 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append('\n'); + sb.append('\t').append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 12 08:47:12 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append('\n'); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 12 08:47:12 2014 -0300 @@ -1485,30 +1485,30 @@ } int startIndex = 0; int v; - StringBuilder sb = new StringBuilder(); - while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { + StringBuilder sb = new StringBuilder(); + while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { - // add non-SELF string - sb.append(sp.getSelfName().substring(startIndex, v)); + // add non-SELF string + sb.append(sp.getSelfName().substring(startIndex, v)); - // expand SELF - Iterator pli = entryPs.iterator(); - while (pli.hasNext()) { - PolicyParser.PrincipalEntry pppe = pli.next(); - String[][] principalInfo = getPrincipalInfo(pppe,pdp); - for (int i = 0; i < principalInfo.length; i++) { - if (i != 0) { - sb.append(", "); - } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); - } - if (pli.hasNext()) { - sb.append(", "); - } - } - startIndex = v + SELF.length(); - } + // expand SELF + Iterator pli = entryPs.iterator(); + while (pli.hasNext()) { + PolicyParser.PrincipalEntry pppe = pli.next(); + String[][] principalInfo = getPrincipalInfo(pppe, pdp); + for (int i = 0; i < principalInfo.length; i++) { + if (i != 0) { + sb.append(", "); + } + sb.append(principalInfo[i][0]).append(' ').append('"') + .append(principalInfo[i][1]).append('"'); + } + if (pli.hasNext()) { + sb.append(", "); + } + } + startIndex = v + SELF.length(); + } // add remaining string (might be the entire string) sb.append(sp.getSelfName().substring(startIndex)); @@ -1774,17 +1774,17 @@ Principal[] principals = pd.getPrincipals(); String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palSB = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palSB.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); if (i < principals.length-1) - palBuf.append(", "); + palSB.append(", "); else - palBuf.append(")"); + palSB.append(')'); } - pals = palBuf.toString(); + pals = palSB.toString(); } return "PD CodeSource: " + pd.getCodeSource() @@ -1884,7 +1884,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('"'); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 12 08:47:12 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append('\n'); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append('\n').append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 12 08:47:12 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append('\n'); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append('\n'); + sb.append("revocationReason is ").append(revocationReason).append('\n'); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append('\n'); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 12 08:47:12 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 12 08:47:12 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 12 08:47:12 2014 -0300 @@ -267,11 +267,11 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", server_name: "); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append('[').append(sniName).append(']'); } - - return "Extension " + type + ", server_name: " + sb; + return sb.toString(); } private static class UnknownServerName extends SNIServerName { diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 12 08:47:12 2014 -0300 @@ -119,17 +119,17 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", signature_algorithms: "); boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; } } - - return "Extension " + type + ", signature_algorithms: " + sb; + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 12 08:47:12 2014 -0300 @@ -112,37 +112,37 @@ @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); - boolean first = true; - for (int curveId : curveIds) { - if (first) { - first = false; - } else { - sb.append(", "); - } - // first check if it is a known named curve, then try other cases. - String oid = getCurveOid(curveId); - if (oid != null) { - ECParameterSpec spec = JsseJce.getECParameterSpec(oid); - // this toString() output will look nice for the current - // implementation of the ECParameterSpec class in the Sun - // provider, but may not look good for other implementations. - if (spec != null) { - sb.append(spec.toString().split(" ")[0]); - } else { - sb.append(oid); - } - } else if (curveId == ARBITRARY_PRIME) { - sb.append("arbitrary_explicit_prime_curves"); - } else if (curveId == ARBITRARY_CHAR2) { - sb.append("arbitrary_explicit_char2_curves"); - } else { - sb.append("unknown curve " + curveId); - } - } - sb.append("}"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", curve names: {"); + boolean first = true; + for (int curveId : curveIds) { + if (first) { + first = false; + } else { + sb.append(", "); + } + // first check if it is a known named curve, then try other cases. + String oid = getCurveOid(curveId); + if (oid != null) { + ECParameterSpec spec = JsseJce.getECParameterSpec(oid); + // this toString() output will look nice for the current + // implementation of the ECParameterSpec class in the Sun + // provider, but may not look good for other implementations. + if (spec != null) { + sb.append(spec.toString().split(" ")[0]); + } else { + sb.append(oid); + } + } else if (curveId == ARBITRARY_PRIME) { + sb.append("arbitrary_explicit_prime_curves"); + } else if (curveId == ARBITRARY_CHAR2) { + sb.append("arbitrary_explicit_char2_curves"); + } else { + sb.append("unknown curve ").append(curveId); + } + } + sb.append("}"); + return sb.toString(); } // Test whether we support the curve with the given index. diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 12 08:47:12 2014 -0300 @@ -676,14 +676,13 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); - sb.append("|"); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? 'X' : ' ') + .append(rb.getString("SPACE")); + sb.append('|'); } // When -certs provided, display info has extra empty @@ -704,11 +703,13 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Signature.related.entries.")) + .append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Unsigned.entries.")) + .append("\n\n"); } } @@ -1605,8 +1606,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 12 08:47:12 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(' ') + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Tue Aug 12 08:47:12 2014 -0300 @@ -1062,7 +1062,7 @@ } else { boolean quoteNeeded = false; - StringBuilder sbuffer = new StringBuilder(); + StringBuilder sb = new StringBuilder(); boolean previousWhite = false; final String escapees = ",+=\n<>#;\\\""; @@ -1079,7 +1079,7 @@ for (int i = 0; i < length; i++) { char c = valStr.charAt(i); if (alreadyQuoted && (i == 0 || i == length - 1)) { - sbuffer.append(c); + sb.append(c); continue; } if (DerValue.isPrintableStringChar(c) || @@ -1096,7 +1096,7 @@ if (!(c == ' ' || c == '\n')) { // escape '"' and '\' if (c == '"' || c == '\\') { - sbuffer.append('\\'); + sb.append('\\'); } previousWhite = false; } else { @@ -1106,7 +1106,7 @@ previousWhite = true; } - sbuffer.append(c); + sb.append(c); } else if (debug != null && Debug.isOn("ava")) { @@ -1119,26 +1119,26 @@ byte[] valueBytes = Character.toString(c).getBytes("UTF8"); for (int j = 0; j < valueBytes.length; j++) { - sbuffer.append('\\'); + sb.append('\\'); char hexChar = Character.forDigit (0xF & (valueBytes[j] >>> 4), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); hexChar = Character.forDigit (0xF & (valueBytes[j]), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); } } else { // append non-printable/non-escaped char previousWhite = false; - sbuffer.append(c); + sb.append(c); } } // quote if trailing whitespace - if (sbuffer.length() > 0) { - char trailChar = sbuffer.charAt(sbuffer.length() - 1); + if (sb.length() > 0) { + char trailChar = sb.charAt(sb.length() - 1); if (trailChar == ' ' || trailChar == '\n') { quoteNeeded = true; } @@ -1147,9 +1147,9 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append('"').append(sb.toString()).append('"'); } else { - retval.append(sbuffer.toString()); + retval.append(sb.toString()); } } } catch (IOException e) { diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 12 08:47:12 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append('\n'); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append('\n'); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append('\n'); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 12 08:47:12 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append('\n'); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append('\n'); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 12 08:47:12 2014 -0300 @@ -258,9 +258,9 @@ * Return a printable representation of the PolicyInformation. */ public String toString() { - StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); - return s.toString(); + StringBuilder sb = new StringBuilder(" [" + policyIdentifier.toString()); + sb.append(policyQualifiers).append(" ]\n"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 12 08:47:12 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 12 08:47:12 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append('\n'); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append('\n'); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append('\n'); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append('\n'); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append('\n'); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append('\n'); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 12 08:47:12 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append('\n'); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 12 08:47:12 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append('\n'); + sb.append(" Subject: ").append(subject.toString()).append('\n'); + sb.append(" Signature Algorithm: ").append(algId.toString()).append('\n'); + sb.append(" Key: ").append(pubKey.toString()).append('\n'); + sb.append(" ").append(interval.toString()).append('\n'); + sb.append(" Issuer: ").append(issuer.toString()).append('\n'); + sb.append(" ").append(serialNum.toString()).append('\n'); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append('\n'); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append('\n'); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 12 08:47:12 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append('\n'); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 12 08:47:12 2014 -0300 @@ -79,25 +79,25 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
    "); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    "); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 12 08:47:12 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append('=').append(map.get(key)).append(','); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append('=').append(entry.getValue()).append(','); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(','); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Tue Aug 12 08:47:12 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(' ').append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(' ').append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(' ').append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(' ').append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 12 08:47:12 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(' '); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 12 08:47:12 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append('|').append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Tue Aug 12 08:47:12 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 12 08:47:12 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); From otaviojava at java.net Tue Aug 12 23:01:07 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Tue, 12 Aug 2014 20:01:07 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <53EA137C.5020701@oracle.com> References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> Message-ID: Thank you Roger. Done https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_6.zip On Tue, Aug 12, 2014 at 10:15 AM, roger riggs wrote: > fyi, > > There's a Perl script normalizer.pl that detects/fixes most of the simple > tab/white space issues. > The script is in the /make/scripts/normalizer.pl > > Roger > > > On 8/12/2014 3:48 AM, Andrej Golovnin wrote: > >> Hi Ot?vio, >> >> I think you should fix the indentation in a lot of classes. You use the >> tab-character for the indentation. As far as I know we should use the >> space >> character for the indentation in the JDK sources (Oracle devs feel free to >> correct me if I'm wrong. And it would be really nice if the style guide >> for >> the source code would be a part of the JDK repository. So we don't need to >> search for it on the internet/wiki. Just clone the repository, read the >> style guide and follow it. :-) ). Here is the not complete list of classes >> where you used the tab-character for the indentation: >> >> src/share/classes/com/sun/crypto/provider/OAEPParameters.java >> src/share/classes/java/lang/management/MemoryUsage.java >> src/share/classes/java/security/KeyStore.java >> src/share/classes/java/security/PermissionCollection.java >> src/share/classes/java/security/ProtectionDomain.java >> src/share/classes/java/security/cert/CertPath.java >> src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java >> src/share/classes/java/security/cert/PKIXParameters.java >> src/share/classes/java/security/cert/PolicyQualifierInfo.java >> src/share/classes/java/security/cert/TrustAnchor.java >> src/share/classes/java/security/cert/X509CertSelector.java >> src/share/classes/javax/crypto/CryptoPermission.java >> src/share/classes/javax/management/relation/Role.java >> >> >> In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a >> dot >> is missed before append: >> >> 423 {jjtn000.name.append( '.')append(t.image); } >> >> Best regards, >> Andrej Golovnin >> > > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/com/sun/awt/AWTUtilities.java --- a/src/share/classes/com/sun/awt/AWTUtilities.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/awt/AWTUtilities.java Tue Aug 12 19:52:29 2014 -0300 @@ -459,4 +459,3 @@ shape); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/awt/SecurityWarning.java --- a/src/share/classes/com/sun/awt/SecurityWarning.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/awt/SecurityWarning.java Tue Aug 12 19:52:29 2014 -0300 @@ -166,4 +166,3 @@ point, alignmentX, alignmentY); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/AESCipher.java --- a/src/share/classes/com/sun/crypto/provider/AESCipher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/AESCipher.java Tue Aug 12 19:52:29 2014 -0300 @@ -622,4 +622,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -137,8 +137,11 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:") + .append(LINE_SEP).append(" ") + .append(this.l); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Tue Aug 12 19:52:29 2014 -0300 @@ -268,8 +268,10 @@ + Debug.toHexString(this.p) + LINE_SEP + "g:" + LINE_SEP + Debug.toHexString(this.g)); - if (this.l != 0) - sb.append(LINE_SEP + "l:" + LINE_SEP + " " + this.l); + if (this.l != 0) { + sb.append(LINE_SEP).append("l:").append(LINE_SEP) + .append(" ").append(this.l); + } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/GCMParameters.java --- a/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/GCMParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -140,7 +140,8 @@ = new StringBuilder(LINE_SEP + " iv:" + LINE_SEP + "[" + encoder.encodeBuffer(iv) + "]"); - sb.append(LINE_SEP + "tLen(bits):" + LINE_SEP + tLen*8 + LINE_SEP); + sb.append(LINE_SEP).append("tLen(bits):").append(LINE_SEP) + .append(tLen * 8).append(LINE_SEP); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -239,10 +239,12 @@ protected String engineToString() { StringBuilder sb = new StringBuilder(); - sb.append("MD: " + mdName + "\n"); - sb.append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n"); - sb.append("PSource: PSpecified " + - (p.length==0? "":Debug.toHexString(new BigInteger(p))) + "\n"); + sb.append("MD: ").append(mdName).append('\n'); + sb.append("MGF: MGF1").append(mgfSpec.getDigestAlgorithm()) + .append('\n'); + sb.append("PSource: PSpecified ") + .append(p.length == 0 ? "" : Debug + .toHexString(new BigInteger(p))).append('\n'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/com/sun/crypto/provider/RC2Parameters.java --- a/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -221,8 +221,9 @@ + encoder.encodeBuffer(iv) + "]"); if (version != 0) { - sb.append(LINE_SEP + "version:" + LINE_SEP - + version + LINE_SEP); + sb.append(LINE_SEP).append("version:") + .append(LINE_SEP).append(version) + .append(LINE_SEP); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/java/util/jar/pack/FixedList.java --- a/src/share/classes/com/sun/java/util/jar/pack/FixedList.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/java/util/jar/pack/FixedList.java Tue Aug 12 19:52:29 2014 -0300 @@ -171,4 +171,3 @@ return "FixedList{" + "plist=" + flist + '}'; } } - diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/interceptor/MBeanServerInterceptor.java --- a/src/share/classes/com/sun/jmx/interceptor/MBeanServerInterceptor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/interceptor/MBeanServerInterceptor.java Tue Aug 12 19:52:29 2014 -0300 @@ -127,4 +127,3 @@ public ClassLoaderRepository getClassLoaderRepository(); } - diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java Tue Aug 12 19:52:29 2014 -0300 @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuilder sb = new StringBuilder(); for(int i =0; i < addrLength; i++) { - sb.append((b[i] & 0xFF) + ":"); + sb.append(b[i] & 0xFF).append(':'); } SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(), "extractSubNet", sb.toString()); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java Tue Aug 12 19:52:29 2014 -0300 @@ -204,7 +204,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java Tue Aug 12 19:52:29 2014 -0300 @@ -379,7 +379,7 @@ } jj_consume_token(DOT); t = jj_consume_token(IDENTIFIER); - jjtn000.name.append( "." + t.image); + jjtn000.name.append('.').append(t.image); } } finally { if (jjtc000) { @@ -408,7 +408,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -454,7 +454,7 @@ } jj_consume_token(MARK); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } } finally { if (jjtc000) { @@ -483,7 +483,7 @@ } jj_consume_token(DOT); t = jj_consume_token(INTEGER_LITERAL); - jjtn000.address.append( "." + t.image); + jjtn000.address.append('.').append(t.image); } jj_consume_token(MASK); t = jj_consume_token(INTEGER_LITERAL); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj Tue Aug 12 19:52:29 2014 -0300 @@ -420,7 +420,7 @@ t= { jjtn000.name.append(t.image); } ( "." t= - {jjtn000.name.append( "." + t.image); } + {jjtn000.name.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -447,7 +447,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -501,7 +501,7 @@ {jjtn000.address.append(t.image); } ( "!" t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )*/*@bgen(jjtree)*/ } finally { if (jjtc000) { @@ -527,7 +527,7 @@ {jjtn000.address.append(t.image); } ( "." t= - {jjtn000.address.append( "." + t.image); } + {jjtn000.address.append( '.').append(t.image); } )* "/" t= /*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt Tue Aug 12 19:52:29 2014 -0300 @@ -213,7 +213,7 @@ t= { jjtThis.name.append(t.image); } ( "." t= - {jjtThis.name.append( "." + t.image); } + {jjtThis.name.append( '.').append(t.image); } )* } @@ -228,7 +228,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -253,7 +253,7 @@ {jjtThis.address.append(t.image); } ( "!" t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* } @@ -267,7 +267,7 @@ {jjtThis.address.append(t.image); } ( "." t= - {jjtThis.address.append( "." + t.image); } + {jjtThis.address.append( '.').append(t.image); } )* "/" t= {jjtThis.mask = t.image; } } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java Tue Aug 12 19:52:29 2014 -0300 @@ -99,7 +99,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java Tue Aug 12 19:52:29 2014 -0300 @@ -479,10 +479,10 @@ */ public String printMessage() { StringBuilder sb = new StringBuilder(); - sb.append("msgId : " + msgId + "\n"); - sb.append("msgMaxSize : " + msgMaxSize + "\n"); - sb.append("msgFlags : " + msgFlags + "\n"); - sb.append("msgSecurityModel : " + msgSecurityModel + "\n"); + sb.append("msgId : ").append(msgId).append('\n'); + sb.append("msgMaxSize : ").append(msgMaxSize).append('\n'); + sb.append("msgFlags : ").append(msgFlags).append('\n'); + sb.append("msgSecurityModel : ").append(msgSecurityModel).append('\n'); if (contextEngineId == null) { sb.append("contextEngineId : null"); diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Tue Aug 12 19:52:29 2014 -0300 @@ -256,7 +256,7 @@ private static String stringifyComponent(NameComponent comp) { StringBuilder one = new StringBuilder(escape(comp.id)); if (comp.kind != null && !comp.kind.equals("")) { - one.append(kindSeparator + escape(comp.kind)); + one.append(kindSeparator).append(escape(comp.kind)); } if (one.length() == 0) { return ""+kindSeparator; // if neither id nor kind specified diff -r dde9f5cfde5f src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Tue Aug 12 19:52:29 2014 -0300 @@ -90,7 +90,7 @@ if (selected == -1) { StringBuilder allChoices = new StringBuilder(); for (int j = 0; j < choices.length; j++) { - allChoices.append(choices[j] + ","); + allChoices.append(choices[j]).append(','); } throw new IOException("Cannot match " + "'java.naming.security.sasl.realm' property value, '" + diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/SoftReverb.java --- a/src/share/classes/com/sun/media/sound/SoftReverb.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/SoftReverb.java Tue Aug 12 19:52:29 2014 -0300 @@ -512,4 +512,3 @@ this.light = light; } } - diff -r dde9f5cfde5f src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java Tue Aug 12 19:52:29 2014 -0300 @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) { - sb.append(channelnames[i] + " "); + sb.append(channelnames[i]).append(' '); } else { - sb.append(allchannelnames[i] + " "); + sb.append(allchannelnames[i]).append(' '); } } m *= 2L; diff -r dde9f5cfde5f src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java --- a/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Tue Aug 12 19:52:29 2014 -0300 @@ -104,4 +104,3 @@ */ public abstract boolean checkCredentials (String username, String password); } - diff -r dde9f5cfde5f src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java --- a/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Tue Aug 12 19:52:29 2014 -0300 @@ -50,4 +50,3 @@ super(msg); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java --- a/src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Tue Aug 12 19:52:29 2014 -0300 @@ -50,4 +50,3 @@ super(msg); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/nio/sctp/InvalidStreamException.java --- a/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java Tue Aug 12 19:52:29 2014 -0300 @@ -49,4 +49,3 @@ super(msg); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/Init.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java Tue Aug 12 19:52:29 2014 -0300 @@ -365,4 +365,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java Tue Aug 12 19:52:29 2014 -0300 @@ -235,14 +235,15 @@ String nodeName = att.getNodeName(); if ((nodeName.equals("xmlns") || nodeName.startsWith("xmlns:")) && !storedNamespaces.containsKey(att.getNodeName())) { - sb.append(" " + nodeName + "=\"" + att.getNodeValue() + "\""); + sb.append(' ').append(nodeName).append("=\"") + .append(att.getNodeValue()).append('"'); storedNamespaces.put(nodeName, att.getNodeValue()); } } } wk = wk.getParentNode(); } - sb.append(">" + source + ""); + sb.append('>').append(source).append(""); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherData.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherData.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherData.java Tue Aug 12 19:52:29 2014 -0300 @@ -92,4 +92,3 @@ */ void setCipherReference(CipherReference reference) throws XMLEncryptionException; } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java Tue Aug 12 19:52:29 2014 -0300 @@ -92,4 +92,3 @@ */ void setTransforms(Transforms transforms); } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedData.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedData.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedData.java Tue Aug 12 19:52:29 2014 -0300 @@ -43,4 +43,3 @@ */ public interface EncryptedData extends EncryptedType { } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedKey.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedKey.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedKey.java Tue Aug 12 19:52:29 2014 -0300 @@ -110,4 +110,3 @@ */ void setCarriedName(String name); } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedType.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedType.java Tue Aug 12 19:52:29 2014 -0300 @@ -194,4 +194,3 @@ */ void setEncryptionProperties(EncryptionProperties properties); } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionMethod.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionMethod.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionMethod.java Tue Aug 12 19:52:29 2014 -0300 @@ -130,4 +130,3 @@ */ void removeEncryptionMethodInformation(Element information); } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperties.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperties.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperties.java Tue Aug 12 19:52:29 2014 -0300 @@ -84,4 +84,3 @@ */ void removeEncryptionProperty(EncryptionProperty property); } - diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java Tue Aug 12 19:52:29 2014 -0300 @@ -24,4 +24,4 @@ package com.sun.org.apache.xml.internal.security.transforms; public interface TransformParam { -} \ No newline at end of file +} diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java Tue Aug 12 19:52:29 2014 -0300 @@ -85,7 +85,7 @@ if (prefix.equals("xmlns")) { sb.append("#default "); } else { - sb.append(prefix + " "); + sb.append(prefix).append(' '); } } diff -r dde9f5cfde5f src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java --- a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java Tue Aug 12 19:52:29 2014 -0300 @@ -88,7 +88,7 @@ l += countQuotes(DN, j, k); if ((k > 0) && (DN.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseRDN(DN.substring(i, k).trim(), toXml) + ","); + sb.append(parseRDN(DN.substring(i, k).trim(), toXml)).append(','); i = k + 1; l = 0; @@ -121,7 +121,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(parseATAV(trim(str.substring(i, k)), toXml) + "+"); + sb.append(parseATAV(trim(str.substring(i, k)), toXml)).append('+'); i = k + 1; l = 0; @@ -369,7 +369,7 @@ int k; for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { - sb.append(trim(string.substring(i, k)) + "\\ "); + sb.append(trim(string.substring(i, k))).append("\\ "); i = k + 3; } @@ -418,7 +418,7 @@ l += countQuotes(str, j, k); if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) == 0) { - sb.append(trim(str.substring(i, k)) + replace); + sb.append(trim(str.substring(i, k))).append(replace); i = k + 1; l = 0; diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Aug 12 19:52:29 2014 -0300 @@ -196,8 +196,7 @@ for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Tue Aug 12 19:52:29 2014 -0300 @@ -391,8 +391,7 @@ for (int i = 0; i < digest.length; i ++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0"+ - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/ParseException.java --- a/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java Tue Aug 12 19:52:29 2014 -0300 @@ -198,7 +198,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java --- a/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java Tue Aug 12 19:52:29 2014 -0300 @@ -107,7 +107,7 @@ default: if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); + retval.append("\\u").append(s.substring(s.length() - 4, s.length())); } else { retval.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java Tue Aug 12 19:52:29 2014 -0300 @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) { - munged.append(" -classpath " + envcp); + munged.append(" -classpath ").append(envcp); } } else { - munged.append(" -classpath " + classpath.asString()); + munged.append(" -classpath ").append(classpath.asString()); } return munged.toString(); } else { @@ -349,14 +349,4 @@ } } - private String appendPath(String path1, String path2) { - if (path1 == null || path1.length() == 0) { - return path2 == null ? "." : path2; - } else if (path2 == null || path2.length() == 0) { - return path1; - } else { - return path1 + File.pathSeparator + path2; - } - } - } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/extcheck/Main.java --- a/src/share/classes/com/sun/tools/extcheck/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/extcheck/Main.java Tue Aug 12 19:52:29 2014 -0300 @@ -87,4 +87,3 @@ throw new Exception(msg + "\nUsage: extcheck [-verbose] "); } } - diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java Tue Aug 12 19:52:29 2014 -0300 @@ -346,12 +346,12 @@ public String valueString(boolean bigLimit) { // Char arrays deserve special treatment - StringBuffer result; + StringBuilder result; byte[] value = getValue(); int max = value.length; byte elementSignature = getElementType(); if (elementSignature == 'C') { - result = new StringBuffer(); + result = new StringBuilder(); for (int i = 0; i < value.length; ) { char val = charAt(i, value); result.append(val); @@ -362,7 +362,7 @@ if (bigLimit) { limit = 1000; } - result = new StringBuffer("{"); + result = new StringBuilder("{"); int num = 0; for (int i = 0; i < value.length; ) { if (num > 0) { @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value); - result.append("0x" + Integer.toString(val, 16)); + result.append("0x").append(Integer.toString(val, 16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2; - result.append("" + val); + result.append(val); break; } case 'I': { int val = intAt(i, value); i += 4; - result.append("" + val); + result.append(val); break; } case 'J': { // long long val = longAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } case 'F': { float val = floatAt(i, value); - result.append("" + val); + result.append(val); i += 4; break; } case 'D': { // double double val = doubleAt(i, value); - result.append("" + val); + result.append(val); i += 8; break; } @@ -425,7 +425,7 @@ } } } - result.append("}"); + result.append('}'); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java Tue Aug 12 19:52:29 2014 -0300 @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append(Integer.toString(ch)).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append(Integer.toString(c)).append(';'); } else { sb.append(ch); } diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java --- a/src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java Tue Aug 12 19:52:29 2014 -0300 @@ -140,4 +140,4 @@ // method must be directly in this interface return this.equals(method.declaringType()); } -} \ No newline at end of file +} diff -r dde9f5cfde5f src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java Tue Aug 12 19:52:29 2014 -0300 @@ -881,12 +881,12 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else { - sb.append("UNKNOWN TAG: " + tag); + sb.append("UNKNOWN TAG: ").append(tag); } if (signature != null) { - sb.append(", signature='" + signature + "'"); + sb.append(", signature='").append(signature).append('\''); } - sb.append(", id=" + id); + sb.append(", id=").append(id); vm.printTrace(sb.toString()); } if (id == 0) { diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/ProbeName.java --- a/src/share/classes/com/sun/tracing/ProbeName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/ProbeName.java Tue Aug 12 19:52:29 2014 -0300 @@ -45,4 +45,3 @@ public @interface ProbeName { String value(); } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/ProviderFactory.java --- a/src/share/classes/com/sun/tracing/ProviderFactory.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/ProviderFactory.java Tue Aug 12 19:52:29 2014 -0300 @@ -111,4 +111,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/ProviderName.java --- a/src/share/classes/com/sun/tracing/ProviderName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/ProviderName.java Tue Aug 12 19:52:29 2014 -0300 @@ -45,4 +45,3 @@ public @interface ProviderName { String value(); } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/dtrace/DependencyClass.java --- a/src/share/classes/com/sun/tracing/dtrace/DependencyClass.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/dtrace/DependencyClass.java Tue Aug 12 19:52:29 2014 -0300 @@ -74,4 +74,3 @@ this.encoding = encoding; } } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/dtrace/FunctionName.java --- a/src/share/classes/com/sun/tracing/dtrace/FunctionName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/dtrace/FunctionName.java Tue Aug 12 19:52:29 2014 -0300 @@ -44,4 +44,3 @@ public @interface FunctionName { String value(); } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/dtrace/ModuleName.java --- a/src/share/classes/com/sun/tracing/dtrace/ModuleName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/dtrace/ModuleName.java Tue Aug 12 19:52:29 2014 -0300 @@ -44,4 +44,3 @@ public @interface ModuleName { String value(); } - diff -r dde9f5cfde5f src/share/classes/com/sun/tracing/dtrace/StabilityLevel.java --- a/src/share/classes/com/sun/tracing/dtrace/StabilityLevel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/com/sun/tracing/dtrace/StabilityLevel.java Tue Aug 12 19:52:29 2014 -0300 @@ -85,4 +85,3 @@ this.encoding = encoding; } } - -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/lang/management/MemoryUsage.java --- a/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/MemoryUsage.java Tue Aug 12 19:52:29 2014 -0300 @@ -237,13 +237,16 @@ * Returns a descriptive representation of this memory usage. */ public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("init = " + init + "(" + (init >> 10) + "K) "); - buf.append("used = " + used + "(" + (used >> 10) + "K) "); - buf.append("committed = " + committed + "(" + - (committed >> 10) + "K) " ); - buf.append("max = " + max + "(" + (max >> 10) + "K)"); - return buf.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("init = ").append(init).append('(').append(init >> 10) + .append("K) "); + sb.append("used = ").append(used).append('(').append(used >> 10) + .append("K) "); + sb.append("committed = ").append(committed).append('(') + .append(committed >> 10).append("K) "); + sb.append("max = ").append(max).append('(').append(max >> 10) + .append("K)"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/java/lang/management/ThreadInfo.java --- a/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/lang/management/ThreadInfo.java Tue Aug 12 19:52:29 2014 -0300 @@ -579,15 +579,17 @@ * @return a string representation of this thread info. */ public String toString() { - StringBuilder sb = new StringBuilder("\"" + getThreadName() + "\"" + - " Id=" + getThreadId() + " " + - getThreadState()); + StringBuilder sb = new StringBuilder(); + sb.append('"').append(getThreadName()).append('"') + .append(" Id=").append(getThreadId()).append(' ') + .append(getThreadState()); + if (getLockName() != null) { - sb.append(" on " + getLockName()); + sb.append(" on ").append(getLockName()); } if (getLockOwnerName() != null) { - sb.append(" owned by \"" + getLockOwnerName() + - "\" Id=" + getLockOwnerId()); + sb.append(" owned by \"").append(getLockOwnerName()) + .append("\" Id=").append(getLockOwnerId()); } if (isSuspended()) { sb.append(" (suspended)"); @@ -599,21 +601,21 @@ int i = 0; for (; i < stackTrace.length && i < MAX_FRAMES; i++) { StackTraceElement ste = stackTrace[i]; - sb.append("\tat " + ste.toString()); + sb.append("\tat ").append(ste.toString()); sb.append('\n'); if (i == 0 && getLockInfo() != null) { Thread.State ts = getThreadState(); switch (ts) { case BLOCKED: - sb.append("\t- blocked on " + getLockInfo()); + sb.append("\t- blocked on ").append(getLockInfo()); sb.append('\n'); break; case WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: - sb.append("\t- waiting on " + getLockInfo()); + sb.append("\t- waiting on ").append(getLockInfo()); sb.append('\n'); break; default: @@ -622,7 +624,7 @@ for (MonitorInfo mi : lockedMonitors) { if (mi.getLockedStackDepth() == i) { - sb.append("\t- locked " + mi); + sb.append("\t- locked ").append(mi); sb.append('\n'); } } @@ -634,10 +636,10 @@ LockInfo[] locks = getLockedSynchronizers(); if (locks.length > 0) { - sb.append("\n\tNumber of locked synchronizers = " + locks.length); + sb.append("\n\tNumber of locked synchronizers = ").append(locks.length); sb.append('\n'); for (LockInfo li : locks) { - sb.append("\t- " + li); + sb.append("\t- ").append(li); sb.append('\n'); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/rmi/dgc/VMID.java --- a/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/rmi/dgc/VMID.java Tue Aug 12 19:52:29 2014 -0300 @@ -124,8 +124,7 @@ if (addr != null) for (int i = 0; i < addr.length; ++ i) { int x = addr[i] & 0xFF; - sb.append((x < 0x10 ? "0" : "") + - Integer.toString(x, 16)); + sb.append(x < 0x10 ? "0" : "").append(Integer.toString(x, 16)); } sb.append(':'); sb.append(uid.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/security/CodeSigner.java --- a/src/share/classes/java/security/CodeSigner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Tue Aug 12 19:52:29 2014 -0300 @@ -156,9 +156,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("Signer: " + signerCertPath.getCertificates().get(0)); + sb.append("Signer: ").append(signerCertPath.getCertificates().get(0)); if (timestamp != null) { - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); } sb.append(")"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/java/security/CodeSource.java --- a/src/share/classes/java/security/CodeSource.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/CodeSource.java Tue Aug 12 19:52:29 2014 -0300 @@ -468,12 +468,12 @@ if (this.certs != null && this.certs.length > 0) { for (int i = 0; i < this.certs.length; i++) { - sb.append( " " + this.certs[i]); + sb.append(' ').append(this.certs[i]); } } else if (this.signers != null && this.signers.length > 0) { for (int i = 0; i < this.signers.length; i++) { - sb.append( " " + this.signers[i]); + sb.append(' ').append(this.signers[i]); } } else { sb.append(" "); diff -r dde9f5cfde5f src/share/classes/java/security/KeyStore.java --- a/src/share/classes/java/security/KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/KeyStore.java Tue Aug 12 19:52:29 2014 -0300 @@ -610,8 +610,8 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Private key entry and certificate chain with " - + chain.length + " elements:\r\n"); + sb.append("Private key entry and certificate chain with ") + .append(chain.length).append(" elements:\r\n"); for (Certificate cert : chain) { sb.append(cert); sb.append("\r\n"); diff -r dde9f5cfde5f src/share/classes/java/security/PermissionCollection.java --- a/src/share/classes/java/security/PermissionCollection.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Tue Aug 12 19:52:29 2014 -0300 @@ -179,13 +179,13 @@ public String toString() { Enumeration enum_ = elements(); StringBuilder sb = new StringBuilder(); - sb.append(super.toString()+" (\n"); + sb.append(super.toString()).append(" (\n"); while (enum_.hasMoreElements()) { try { - sb.append(" "); + sb.append(' '); sb.append(enum_.nextElement().toString()); - sb.append("\n"); - } catch (NoSuchElementException e){ + sb.append('\n'); + } catch (NoSuchElementException e) { // ignore } } diff -r dde9f5cfde5f src/share/classes/java/security/ProtectionDomain.java --- a/src/share/classes/java/security/ProtectionDomain.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Tue Aug 12 19:52:29 2014 -0300 @@ -285,34 +285,32 @@ /** * Convert a ProtectionDomain to a String. */ - @Override public String toString() { + @Override + public String toString() { String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palBuilder = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); - if (i < principals.length-1) - palBuf.append(",\n"); - else - palBuf.append(")\n"); + palBuilder.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); + if (i < principals.length - 1) { + palBuilder.append(",\n"); + } else { + palBuilder.append(")\n"); + } } - pals = palBuf.toString(); + pals = palBuilder.toString(); } // Check if policy is set; we don't want to load // the policy prematurely here - PermissionCollection pc = Policy.isSet() && seeAllp() ? - mergePermissions(): - getPermissions(); + PermissionCollection pc = Policy.isSet() && seeAllp() ? mergePermissions() + : getPermissions(); - return "ProtectionDomain "+ - " "+codesource+"\n"+ - " "+classloader+"\n"+ - " "+pals+"\n"+ - " "+pc+"\n"; + return "ProtectionDomain " + " " + codesource + "\n" + " " + + classloader + "\n" + " " + pals + "\n" + " " + pc + "\n"; } /** diff -r dde9f5cfde5f src/share/classes/java/security/Timestamp.java --- a/src/share/classes/java/security/Timestamp.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/Timestamp.java Tue Aug 12 19:52:29 2014 -0300 @@ -143,10 +143,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); - sb.append("timestamp: " + timestamp); + sb.append("timestamp: ").append(timestamp); List certs = signerCertPath.getCertificates(); if (!certs.isEmpty()) { - sb.append("TSA: " + certs.get(0)); + sb.append("TSA: ").append(certs.get(0)); } else { sb.append("TSA: "); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CertPath.java --- a/src/share/classes/java/security/cert/CertPath.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CertPath.java Tue Aug 12 19:52:29 2014 -0300 @@ -221,20 +221,16 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - Iterator stringIterator = - getCertificates().iterator(); - sb.append("\n" + type + " Cert Path: length = " - + getCertificates().size() + ".\n"); - sb.append("[\n"); + sb.append('\n').append(type).append(" Cert Path: length = ") + .append(getCertificates().size()).append(".\n").append("[\n"); int i = 1; - while (stringIterator.hasNext()) { + for (Certificate stringCert : getCertificates()) { sb.append("==========================================" - + "===============Certificate " + i + " start.\n"); - Certificate stringCert = stringIterator.next(); + + "===============Certificate ").append(i).append(" start.\n"); sb.append(stringCert.toString()); sb.append("\n========================================" - + "=================Certificate " + i + " end.\n\n\n"); + + "=================Certificate ").append(i).append(" end.\n\n\n"); i++; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/CollectionCertStoreParameters.java --- a/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/CollectionCertStoreParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -134,8 +134,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CollectionCertStoreParameters: [\n"); - sb.append(" collection: " + coll + "\n"); - sb.append("]"); + sb.append(" collection: ").append(coll).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/LDAPCertStoreParameters.java --- a/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/LDAPCertStoreParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -141,9 +141,9 @@ StringBuilder sb = new StringBuilder(); sb.append("LDAPCertStoreParameters: [\n"); - sb.append(" serverName: " + serverName + "\n"); - sb.append(" port: " + port + "\n"); - sb.append("]"); + sb.append(" serverName: ").append(serverName).append('\n'); + sb.append(" port: ").append(port).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXBuilderParameters.java --- a/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXBuilderParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -192,7 +192,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Maximum Path Length: " + maxPathLength + "\n"); + sb.append(" Maximum Path Length: ").append(maxPathLength).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java Tue Aug 12 19:52:29 2014 -0300 @@ -109,11 +109,13 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathBuilderResult: [\n"); - sb.append(" Certification Path: " + certPath + "\n"); - sb.append(" Trust Anchor: " + getTrustAnchor().toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(getPolicyTree()) + "\n"); - sb.append(" Subject Public Key: " + getPublicKey() + "\n"); - sb.append("]"); + sb.append(" Certification Path: ").append(certPath).append('\n'); + sb.append(" Trust Anchor: ").append(getTrustAnchor().toString()) + .append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(getPolicyTree())) + .append('\n'); + sb.append(" Subject Public Key: ").append(getPublicKey()).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java --- a/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java Tue Aug 12 19:52:29 2014 -0300 @@ -150,10 +150,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PKIXCertPathValidatorResult: [\n"); - sb.append(" Trust Anchor: " + trustAnchor.toString() + "\n"); - sb.append(" Policy Tree: " + String.valueOf(policyTree) + "\n"); - sb.append(" Subject Public Key: " + subjectPublicKey + "\n"); - sb.append("]"); + sb.append(" Trust Anchor: ").append(trustAnchor.toString()).append('\n'); + sb.append(" Policy Tree: ").append(String.valueOf(policyTree)).append('\n'); + sb.append(" Subject Public Key: ").append(subjectPublicKey).append('\n'); + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PKIXParameters.java --- a/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PKIXParameters.java Tue Aug 12 19:52:29 2014 -0300 @@ -698,8 +698,8 @@ /* start with trusted anchor info */ if (unmodTrustAnchors != null) { - sb.append(" Trust Anchors: " + unmodTrustAnchors.toString() - + "\n"); + sb.append(" Trust Anchors: ").append(unmodTrustAnchors.toString()) + .append('\n'); } /* now, append initial state information */ @@ -707,30 +707,41 @@ if (unmodInitialPolicies.isEmpty()) { sb.append(" Initial Policy OIDs: any\n"); } else { - sb.append(" Initial Policy OIDs: [" - + unmodInitialPolicies.toString() + "]\n"); + sb.append(" Initial Policy OIDs: [") + .append(unmodInitialPolicies.toString()).append("]\n"); } } /* now, append constraints on all certificates in the path */ - sb.append(" Validity Date: " + String.valueOf(date) + "\n"); - sb.append(" Signature Provider: " + String.valueOf(sigProvider) + "\n"); - sb.append(" Default Revocation Enabled: " + revocationEnabled + "\n"); - sb.append(" Explicit Policy Required: " + explicitPolicyRequired + "\n"); - sb.append(" Policy Mapping Inhibited: " + policyMappingInhibited + "\n"); - sb.append(" Any Policy Inhibited: " + anyPolicyInhibited + "\n"); - sb.append(" Policy Qualifiers Rejected: " + policyQualifiersRejected + "\n"); + sb.append(" Validity Date: ").append(String.valueOf(date)) + .append('\n'); + sb.append(" Signature Provider: ").append(String.valueOf(sigProvider)) + .append('\n'); + sb.append(" Default Revocation Enabled: ").append(revocationEnabled) + .append('\n'); + sb.append(" Explicit Policy Required: ") + .append(explicitPolicyRequired).append('\n'); + sb.append(" Policy Mapping Inhibited: ") + .append(policyMappingInhibited).append('\n'); + sb.append(" Any Policy Inhibited: ").append(anyPolicyInhibited) + .append('\n'); + sb.append(" Policy Qualifiers Rejected: ") + .append(policyQualifiersRejected).append('\n'); /* now, append target cert requirements */ - sb.append(" Target Cert Constraints: " + String.valueOf(certSelector) + "\n"); + sb.append(" Target Cert Constraints: ") + .append(String.valueOf(certSelector)).append('\n'); /* finally, append miscellaneous parameters */ - if (certPathCheckers != null) - sb.append(" Certification Path Checkers: [" - + certPathCheckers.toString() + "]\n"); - if (certStores != null) - sb.append(" CertStores: [" + certStores.toString() + "]\n"); - sb.append("]"); + if (certPathCheckers != null) { + sb.append(" Certification Path Checkers: [") + .append(certPathCheckers.toString()).append("]\n"); + } + if (certStores != null) { + sb.append(" CertStores: [").append(certStores.toString()) + .append("]\n"); + } + sb.append(']'); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/PolicyQualifierInfo.java --- a/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/PolicyQualifierInfo.java Tue Aug 12 19:52:29 2014 -0300 @@ -158,15 +158,17 @@ * {@code PolicyQualifierInfo} */ public String toString() { - if (pqiString != null) + if (pqiString != null) { return pqiString; + } HexDumpEncoder enc = new HexDumpEncoder(); StringBuilder sb = new StringBuilder(); sb.append("PolicyQualifierInfo: [\n"); - sb.append(" qualifierID: " + mId + "\n"); - sb.append(" qualifier: " + - (mData == null ? "null" : enc.encodeBuffer(mData)) + "\n"); - sb.append("]"); + sb.append(" qualifierID: ").append(mId).append('\n'); + sb.append(" qualifier: ") + .append(mData == null ? "null" : enc.encodeBuffer(mData)) + .append('\n'); + sb.append(']'); pqiString = sb.toString(); return pqiString; } diff -r dde9f5cfde5f src/share/classes/java/security/cert/TrustAnchor.java --- a/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/TrustAnchor.java Tue Aug 12 19:52:29 2014 -0300 @@ -320,14 +320,18 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); if (pubKey != null) { - sb.append(" Trusted CA Public Key: " + pubKey.toString() + "\n"); - sb.append(" Trusted CA Issuer Name: " - + String.valueOf(caName) + "\n"); + sb.append(" Trusted CA Public Key: ").append(pubKey.toString()) + .append('\n'); + sb.append(" Trusted CA Issuer Name: ") + .append(String.valueOf(caName)).append('\n'); } else { - sb.append(" Trusted CA cert: " + trustedCert.toString() + "\n"); + sb.append(" Trusted CA cert: ").append(trustedCert.toString()) + .append('\n'); } - if (nc != null) - sb.append(" Name Constraints: " + nc.toString() + "\n"); + if (nc != null) { + sb.append(" Name Constraints: ").append(nc.toString()) + .append('\n'); + } return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CRLSelector.java --- a/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CRLSelector.java Tue Aug 12 19:52:29 2014 -0300 @@ -572,17 +572,17 @@ sb.append(" IssuerNames:\n"); Iterator i = issuerNames.iterator(); while (i.hasNext()) - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } if (minCRL != null) - sb.append(" minCRLNumber: " + minCRL + "\n"); + sb.append(" minCRLNumber: ").append(minCRL).append('\n'); if (maxCRL != null) - sb.append(" maxCRLNumber: " + maxCRL + "\n"); + sb.append(" maxCRLNumber: ").append(maxCRL).append('\n'); if (dateAndTime != null) - sb.append(" dateAndTime: " + dateAndTime + "\n"); + sb.append(" dateAndTime: ").append(dateAndTime).append('\n'); if (certChecking != null) - sb.append(" Certificate being checked: " + certChecking + "\n"); - sb.append("]"); + sb.append(" Certificate being checked: ").append(certChecking).append('\n'); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/security/cert/X509CertSelector.java --- a/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/security/cert/X509CertSelector.java Tue Aug 12 19:52:29 2014 -0300 @@ -1814,72 +1814,75 @@ StringBuilder sb = new StringBuilder(); sb.append("X509CertSelector: [\n"); if (x509Cert != null) { - sb.append(" Certificate: " + x509Cert.toString() + "\n"); + sb.append(" Certificate: ").append(x509Cert.toString()) + .append('\n'); } if (serialNumber != null) { - sb.append(" Serial Number: " + serialNumber.toString() + "\n"); + sb.append(" Serial Number: ").append(serialNumber.toString()) + .append('\n'); } if (issuer != null) { - sb.append(" Issuer: " + getIssuerAsString() + "\n"); + sb.append(" Issuer: ").append(getIssuerAsString()).append('\n'); } if (subject != null) { - sb.append(" Subject: " + getSubjectAsString() + "\n"); + sb.append(" Subject: ").append(getSubjectAsString()).append('\n'); } - sb.append(" matchAllSubjectAltNames flag: " - + String.valueOf(matchAllSubjectAltNames) + "\n"); + sb.append(" matchAllSubjectAltNames flag: ") + .append(String.valueOf(matchAllSubjectAltNames)).append('\n'); if (subjectAlternativeNames != null) { sb.append(" SubjectAlternativeNames:\n"); Iterator> i = subjectAlternativeNames.iterator(); while (i.hasNext()) { List list = i.next(); - sb.append(" type " + list.get(0) + - ", name " + list.get(1) + "\n"); + sb.append(" type ").append(list.get(0)).append(", name ") + .append(list.get(1)).append('\n'); } } if (subjectKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Subject Key Identifier: " + - enc.encodeBuffer(subjectKeyID) + "\n"); + sb.append(" Subject Key Identifier: ") + .append(enc.encodeBuffer(subjectKeyID)).append('\n'); } if (authorityKeyID != null) { HexDumpEncoder enc = new HexDumpEncoder(); - sb.append(" Authority Key Identifier: " + - enc.encodeBuffer(authorityKeyID) + "\n"); + sb.append(" Authority Key Identifier: ") + .append(enc.encodeBuffer(authorityKeyID)).append('\n'); } if (certificateValid != null) { - sb.append(" Certificate Valid: " + - certificateValid.toString() + "\n"); + sb.append(" Certificate Valid: ") + .append(certificateValid.toString()).append('\n'); } if (privateKeyValid != null) { - sb.append(" Private Key Valid: " + - privateKeyValid.toString() + "\n"); + sb.append(" Private Key Valid: ") + .append(privateKeyValid.toString()).append('\n'); } if (subjectPublicKeyAlgID != null) { - sb.append(" Subject Public Key AlgID: " + - subjectPublicKeyAlgID.toString() + "\n"); + sb.append(" Subject Public Key AlgID: ") + .append(subjectPublicKeyAlgID.toString()).append('\n'); } if (subjectPublicKey != null) { - sb.append(" Subject Public Key: " + - subjectPublicKey.toString() + "\n"); + sb.append(" Subject Public Key: ") + .append(subjectPublicKey.toString()).append('\n'); } if (keyUsage != null) { - sb.append(" Key Usage: " + keyUsageToString(keyUsage) + "\n"); + sb.append(" Key Usage: ").append(keyUsageToString(keyUsage)) + .append('\n'); } if (keyPurposeSet != null) { - sb.append(" Extended Key Usage: " + - keyPurposeSet.toString() + "\n"); + sb.append(" Extended Key Usage: ") + .append(keyPurposeSet.toString()).append('\n'); } if (policy != null) { - sb.append(" Policy: " + policy.toString() + "\n"); + sb.append(" Policy: ").append(policy.toString()).append('\n'); } if (pathToGeneralNames != null) { sb.append(" Path to names:\n"); Iterator i = pathToGeneralNames.iterator(); while (i.hasNext()) { - sb.append(" " + i.next() + "\n"); + sb.append(" ").append(i.next()).append('\n'); } } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/text/ChoiceFormat.java --- a/src/share/classes/java/text/ChoiceFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/text/ChoiceFormat.java Tue Aug 12 19:52:29 2014 -0300 @@ -272,7 +272,7 @@ double tryLess = Math.abs(Math.IEEEremainder(less, 1.0d)); if (tryLessOrEqual < tryLess) { - result.append(""+choiceLimits[i]); + result.append(choiceLimits[i]); result.append('#'); } else { if (choiceLimits[i] == Double.POSITIVE_INFINITY) { @@ -280,7 +280,7 @@ } else if (choiceLimits[i] == Double.NEGATIVE_INFINITY) { result.append("-\u221E"); } else { - result.append(""+less); + result.append(less); } result.append('<'); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/java/util/Scanner.java --- a/src/share/classes/java/util/Scanner.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/Scanner.java Tue Aug 12 19:52:29 2014 -0300 @@ -1304,20 +1304,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.Scanner"); - sb.append("[delimiters=" + delimPattern + "]"); - sb.append("[position=" + position + "]"); - sb.append("[match valid=" + matchValid + "]"); - sb.append("[need input=" + needInput + "]"); - sb.append("[source closed=" + sourceClosed + "]"); - sb.append("[skipped=" + skipped + "]"); - sb.append("[group separator=" + groupSeparator + "]"); - sb.append("[decimal separator=" + decimalSeparator + "]"); - sb.append("[positive prefix=" + positivePrefix + "]"); - sb.append("[negative prefix=" + negativePrefix + "]"); - sb.append("[positive suffix=" + positiveSuffix + "]"); - sb.append("[negative suffix=" + negativeSuffix + "]"); - sb.append("[NaN string=" + nanString + "]"); - sb.append("[infinity string=" + infinityString + "]"); + sb.append("[delimiters=").append(delimPattern).append(']'); + sb.append("[position=").append(position).append(']'); + sb.append("[match valid=").append(matchValid).append(']'); + sb.append("[need input=").append(needInput).append(']'); + sb.append("[source closed=").append(sourceClosed).append(']'); + sb.append("[skipped=").append(skipped).append(']'); + sb.append("[group separator=").append(groupSeparator).append(']'); + sb.append("[decimal separator=").append(decimalSeparator).append(']'); + sb.append("[positive prefix=").append(positivePrefix).append(']'); + sb.append("[negative prefix=").append(negativePrefix).append(']'); + sb.append("[positive suffix=").append(positiveSuffix).append(']'); + sb.append("[negative suffix=").append(negativeSuffix).append(']'); + sb.append("[NaN string=").append(nanString).append(']'); + sb.append("[infinity string=").append(infinityString).append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java --- a/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java Tue Aug 12 19:52:29 2014 -0300 @@ -274,4 +274,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/java/util/regex/Matcher.java --- a/src/share/classes/java/util/regex/Matcher.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Matcher.java Tue Aug 12 19:52:29 2014 -0300 @@ -1295,14 +1295,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("java.util.regex.Matcher"); - sb.append("[pattern=" + pattern()); + sb.append("[pattern=").append(pattern()); sb.append(" region="); - sb.append(regionStart() + "," + regionEnd()); + sb.append(regionStart()).append(',').append(regionEnd()); sb.append(" lastmatch="); if ((first >= 0) && (group() != null)) { sb.append(group()); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/regex/Pattern.java --- a/src/share/classes/java/util/regex/Pattern.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/regex/Pattern.java Tue Aug 12 19:52:29 2014 -0300 @@ -1488,10 +1488,10 @@ for(int x=0; x0) - result.append("|"+next); + result.append('|').append(next); next = composeOneStep(next); if (next != null) - result.append("|"+produceEquivalentAlternation(next)); + result.append('|').append(produceEquivalentAlternation(next)); } return result.toString(); } diff -r dde9f5cfde5f src/share/classes/java/util/stream/FindOps.java --- a/src/share/classes/java/util/stream/FindOps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/stream/FindOps.java Tue Aug 12 19:52:29 2014 -0300 @@ -315,4 +315,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/java/util/stream/MatchOps.java --- a/src/share/classes/java/util/stream/MatchOps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/stream/MatchOps.java Tue Aug 12 19:52:29 2014 -0300 @@ -315,4 +315,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/java/util/stream/SpinedBuffer.java --- a/src/share/classes/java/util/stream/SpinedBuffer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/stream/SpinedBuffer.java Tue Aug 12 19:52:29 2014 -0300 @@ -1058,4 +1058,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/java/util/stream/StreamSpliterators.java --- a/src/share/classes/java/util/stream/StreamSpliterators.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/java/util/stream/StreamSpliterators.java Tue Aug 12 19:52:29 2014 -0300 @@ -1545,4 +1545,3 @@ } } } - -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/management/MBeanPermission.java --- a/src/share/classes/javax/management/MBeanPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/MBeanPermission.java Tue Aug 12 19:52:30 2014 -0300 @@ -455,11 +455,11 @@ name.append(className); if (member == null) member = "-"; - name.append("#" + member); + name.append('#').append(member); if (objectName == null) name.append("[-]"); else - name.append("[").append(objectName.getCanonicalName()).append("]"); + name.append('[').append(objectName.getCanonicalName()).append(']'); /* In the interests of legibility for Permission.toString(), we transform the empty string into "*". */ diff -r dde9f5cfde5f src/share/classes/javax/management/modelmbean/RequiredModelMBean.java --- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Tue Aug 12 19:52:30 2014 -0300 @@ -716,15 +716,14 @@ } retStr.append("\nMBeanInfo for ModelMBean is:"); - retStr.append("\nCLASSNAME: \t"+ info.getClassName()); - retStr.append("\nDESCRIPTION: \t"+ info.getDescription()); + retStr.append("\nCLASSNAME: \t").append(info.getClassName()); + retStr.append("\nDESCRIPTION: \t").append(info.getDescription()); try { - retStr.append("\nMBEAN DESCRIPTOR: \t"+ - info.getMBeanDescriptor()); + retStr.append("\nMBEAN DESCRIPTOR: \t").append(info.getMBeanDescriptor()); } catch (Exception e) { - retStr.append("\nMBEAN DESCRIPTOR: \t" + " is invalid"); + retStr.append("\nMBEAN DESCRIPTOR: \t is invalid"); } retStr.append("\nATTRIBUTES"); @@ -734,13 +733,12 @@ for (int i=0; i objNameIter = objectNameList.iterator(); - objNameIter.hasNext();) { + StringBuilder sb = new StringBuilder(); + sb.append("role name: ").append(name).append("; role value: "); + for (Iterator objNameIter = objectNameList.iterator(); objNameIter + .hasNext();) { ObjectName currObjName = objNameIter.next(); - result.append(currObjName.toString()); + sb.append(currObjName.toString()); if (objNameIter.hasNext()) { - result.append(", "); + sb.append(", "); } } - return result.toString(); + return sb.toString(); } // diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleInfo.java --- a/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleInfo.java Tue Aug 12 19:52:30 2014 -0300 @@ -456,13 +456,13 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role info name: " + name); - result.append("; isReadable: " + isReadable); - result.append("; isWritable: " + isWritable); - result.append("; description: " + description); - result.append("; minimum degree: " + minDegree); - result.append("; maximum degree: " + maxDegree); - result.append("; MBean class: " + referencedMBeanClassName); + result.append("role info name: ").append(name); + result.append("; isReadable: ").append(isReadable); + result.append("; isWritable: ").append(isWritable); + result.append("; description: ").append(description); + result.append("; minimum degree: ").append(minDegree); + result.append("; maximum degree: ").append(maxDegree); + result.append("; MBean class: ").append(referencedMBeanClassName); return result.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/management/relation/RoleUnresolved.java --- a/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/management/relation/RoleUnresolved.java Tue Aug 12 19:52:30 2014 -0300 @@ -282,7 +282,7 @@ */ public String toString() { StringBuilder result = new StringBuilder(); - result.append("role name: " + roleName); + result.append("role name: ").append(roleName); if (roleValue != null) { result.append("; value: "); for (Iterator objNameIter = roleValue.iterator(); @@ -294,7 +294,7 @@ } } } - result.append("; problem type: " + problemType); + result.append("; problem type: ").append(problemType); return result.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/crypto/CryptoPermission.java --- a/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/crypto/CryptoPermission.java Tue Aug 12 19:52:29 2014 -0300 @@ -369,22 +369,24 @@ * @return information about this CryptoPermission. */ public String toString() { - StringBuilder buf = new StringBuilder(100); - buf.append("(CryptoPermission " + alg + " " + maxKeySize); + StringBuilder sb = new StringBuilder(100); + sb.append("(CryptoPermission ").append(alg).append(' ') + .append(maxKeySize); if (algParamSpec != null) { if (algParamSpec instanceof RC2ParameterSpec) { - buf.append(" , effective " + - ((RC2ParameterSpec)algParamSpec).getEffectiveKeyBits()); + sb.append(" , effective ") + .append(((RC2ParameterSpec) algParamSpec) + .getEffectiveKeyBits()); } else if (algParamSpec instanceof RC5ParameterSpec) { - buf.append(" , rounds " + - ((RC5ParameterSpec)algParamSpec).getRounds()); + sb.append(" , rounds ").append( + ((RC5ParameterSpec) algParamSpec).getRounds()); } } if (exemptionMechanism != null) { // OPTIONAL - buf.append(" " + exemptionMechanism); + sb.append(' ').append(exemptionMechanism); } - buf.append(")"); - return buf.toString(); + sb.append(')'); + return sb.toString(); } private boolean impliesExemptionMechanism(String exemptionMechanism) { -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/naming/BinaryRefAddr.java --- a/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/BinaryRefAddr.java Tue Aug 12 19:52:30 2014 -0300 @@ -165,11 +165,11 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n"); - + StringBuilder str = new StringBuilder(); + str.append("Address Type: ").append(addrType).append('\n'); str.append("AddressContents: "); for (int i = 0; i= 32) str.append(" ...\n"); diff -r dde9f5cfde5f src/share/classes/javax/naming/NameImpl.java --- a/src/share/classes/javax/naming/NameImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/NameImpl.java Tue Aug 12 19:52:30 2014 -0300 @@ -170,7 +170,7 @@ endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2; i += syntaxTypevalSeparator.length(); - answer.append(syntaxTypevalSeparator+beginQuote); // add back + answer.append(syntaxTypevalSeparator).append(beginQuote); // add back // consume string until matching quote for (i += beginQuote.length(); diff -r dde9f5cfde5f src/share/classes/javax/naming/RefAddr.java --- a/src/share/classes/javax/naming/RefAddr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/naming/RefAddr.java Tue Aug 12 19:52:30 2014 -0300 @@ -139,9 +139,9 @@ * @return The non-null string representation of this address. */ public String toString(){ - StringBuilder str = new StringBuilder("Type: " + addrType + "\n"); - - str.append("Content: " + getContent() + "\n"); + StringBuilder str = new StringBuilder(); + str.append("Type: ").append(addrType).append('\n'); + str.append("Content: ").append(getContent()).append('\n'); return (str.toString()); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/security/auth/kerberos/KerberosTicket.java --- a/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java Tue Aug 12 19:52:30 2014 -0300 @@ -651,8 +651,7 @@ StringBuilder caddrString = new StringBuilder(); if (clientAddresses != null) { for (int i = 0; i < clientAddresses.length; i++) { - caddrString.append("clientAddresses[" + i + "] = " + - clientAddresses[i].toString()); + caddrString.append("clientAddresses[").append(i).append("] = ").append(clientAddresses[i].toString()); } } return ("Ticket (hex) = " + "\n" + -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/AudioFileFormat.java --- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java Tue Aug 12 19:52:30 2014 -0300 @@ -272,26 +272,25 @@ @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder sb = new StringBuilder(); //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString() throws unexpected NullPointerException if (type != null) { - buf.append(type.toString() + " (." + type.getExtension() + ") file"); + sb.append(type.toString()).append(" (.").append(type.getExtension()).append(") file"); } else { - buf.append("unknown file format"); + sb.append("unknown file format"); } if (byteLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", byte length: " + byteLength); + sb.append(", byte length: ").append(byteLength); } - buf.append(", data format: " + format); + sb.append(", data format: ").append(format); if (frameLength != AudioSystem.NOT_SPECIFIED) { - buf.append(", frame length: " + frameLength); + sb.append(", frame length: ").append(frameLength); } - - return new String(buf); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/javax/sound/sampled/DataLine.java --- a/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/sound/sampled/DataLine.java Tue Aug 12 19:52:30 2014 -0300 @@ -473,17 +473,21 @@ StringBuilder sb = new StringBuilder(); if ( (formats.length == 1) && (formats[0] != null) ) { - sb.append(" supporting format " + formats[0]); + sb.append(" supporting format ").append(formats[0]); } else if (getFormats().length > 1) { - sb.append(" supporting " + getFormats().length + " audio formats"); + sb.append(" supporting ").append(getFormats().length) + .append(" audio formats"); } if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) { - sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes"); + sb.append(", and buffers of ").append(minBufferSize) + .append(" to ").append(maxBufferSize).append(" bytes"); } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) { - sb.append(", and buffers of at least " + minBufferSize + " bytes"); + sb.append(", and buffers of at least ").append(minBufferSize) + .append(" bytes"); } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) { - sb.append(", and buffers of up to " + minBufferSize + " bytes"); + sb.append(", and buffers of up to ").append(minBufferSize) + .append(" bytes"); } return new String(super.toString() + sb); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/javax/swing/GroupLayout.java --- a/src/share/classes/javax/swing/GroupLayout.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/GroupLayout.java Tue Aug 12 19:52:30 2014 -0300 @@ -1213,15 +1213,15 @@ registerComponents(horizontalGroup, HORIZONTAL); registerComponents(verticalGroup, VERTICAL); } - StringBuffer buffer = new StringBuffer(); - buffer.append("HORIZONTAL\n"); - createSpringDescription(buffer, horizontalGroup, " ", HORIZONTAL); - buffer.append("\nVERTICAL\n"); - createSpringDescription(buffer, verticalGroup, " ", VERTICAL); - return buffer.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("HORIZONTAL\n"); + createSpringDescription(sb, horizontalGroup, " ", HORIZONTAL); + sb.append("\nVERTICAL\n"); + createSpringDescription(sb, verticalGroup, " ", VERTICAL); + return sb.toString(); } - private void createSpringDescription(StringBuffer buffer, Spring spring, + private void createSpringDescription(StringBuilder sb, Spring spring, String indent, int axis) { String origin = ""; String padding = ""; @@ -1239,20 +1239,19 @@ padding = ", userCreated=" + paddingSpring.getUserCreated() + ", matches=" + paddingSpring.getMatchDescription(); } - buffer.append(indent + spring.getClass().getName() + " " + - Integer.toHexString(spring.hashCode()) + " " + - origin + - ", size=" + spring.getSize() + - ", alignment=" + spring.getAlignment() + - " prefs=[" + spring.getMinimumSize(axis) + - " " + spring.getPreferredSize(axis) + - " " + spring.getMaximumSize(axis) + - padding + "]\n"); + sb.append(indent).append(spring.getClass().getName()).append(' ') + .append(Integer.toHexString(spring.hashCode())).append(' ') + .append(origin).append(", size=").append(spring.getSize()) + .append(", alignment=").append(spring.getAlignment()) + .append(" prefs=[").append(spring.getMinimumSize(axis)) + .append(' ').append(spring.getPreferredSize(axis)).append(' ') + .append(spring.getMaximumSize(axis)).append(padding) + .append("]\n"); if (spring instanceof Group) { List springs = ((Group)spring).springs; indent += " "; for (int counter = 0; counter < springs.size(); counter++) { - createSpringDescription(buffer, springs.get(counter), indent, + createSpringDescription(sb, springs.get(counter), indent, axis); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/JColorChooser.java --- a/src/share/classes/javax/swing/JColorChooser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/JColorChooser.java Tue Aug 12 19:52:30 2014 -0300 @@ -542,19 +542,19 @@ * * @return a string representation of this JColorChooser */ - protected String paramString() { - StringBuilder chooserPanelsString = new StringBuilder(""); - for (int i=0; i keys = keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - sb.append(key + "=" + get(key) + ", "); - } - int length = sb.length(); - if (length > 1) { - sb.delete(length-2, length); - } - sb.append("}"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("{"); + Enumeration keys = keys(); + while (keys.hasMoreElements()) { + Object key = keys.nextElement(); + sb.append(key).append('=').append(get(key)).append(", "); + } + int length = sb.length(); + if (length > 1) { + sb.delete(length - 2, length); + } + sb.append('}'); + return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/javax/swing/RepaintManager.java --- a/src/share/classes/javax/swing/RepaintManager.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/RepaintManager.java Tue Aug 12 19:52:30 2014 -0300 @@ -990,10 +990,7 @@ * @return a String representation of this object */ public synchronized String toString() { - StringBuilder sb = new StringBuilder(); - if(dirtyComponents != null) - sb.append("" + dirtyComponents); - return sb.toString(); + return dirtyComponents != null ? dirtyComponents.toString() : ""; } diff -r dde9f5cfde5f src/share/classes/javax/swing/event/TreeModelEvent.java --- a/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/event/TreeModelEvent.java Tue Aug 12 19:52:30 2014 -0300 @@ -294,21 +294,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(getClass().getName() + " " + - Integer.toString(hashCode())); + sb.append(getClass().getName()).append(' ').append(Integer.toString(hashCode())); if(path != null) - sb.append(" path " + path); + sb.append(" path ").append(path); if(childIndices != null) { sb.append(" indices [ "); for(int counter = 0; counter < childIndices.length; counter++) - sb.append(Integer.toString(childIndices[counter])+ " "); - sb.append("]"); + sb.append(Integer.toString(childIndices[counter])).append(' '); + sb.append(']'); } if(children != null) { sb.append(" children [ "); for(int counter = 0; counter < children.length; counter++) - sb.append(children[counter] + " "); - sb.append("]"); + sb.append(children[counter]).append(' '); + sb.append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Aug 12 19:52:30 2014 -0300 @@ -1330,8 +1330,8 @@ for (Object obj : values) { String val = ((obj == null) ? "" : obj.toString()); - plainBuf.append(val + "\n"); - htmlBuf.append("
  • " + val + "\n"); + plainBuf.append(val).append('\n'); + htmlBuf.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Tue Aug 12 19:52:30 2014 -0300 @@ -2948,8 +2948,8 @@ for (int i = 0; i < values.length; i++) { Object obj = values[i]; String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\n"); - htmlStr.append("
  • " + val + "\n"); + plainStr.append(val).append('\n'); + htmlStr.append("
  • ").append(val).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTableUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java Tue Aug 12 19:52:30 2014 -0300 @@ -2230,11 +2230,11 @@ for (int col = 0; col < cols.length; col++) { Object obj = table.getValueAt(rows[row], cols[col]); String val = ((obj == null) ? "" : obj.toString()); - plainStr.append(val + "\t"); - htmlStr.append(" " + val + "\n"); + plainStr.append(val).append('\t'); + htmlStr.append(" ").append(val).append("\n"); } // we want a newline at the end of each line and not a tab - plainStr.deleteCharAt(plainStr.length() - 1).append("\n"); + plainStr.deleteCharAt(plainStr.length() - 1).append('\t'); htmlStr.append("\n"); } diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Tue Aug 12 19:52:30 2014 -0300 @@ -3618,8 +3618,8 @@ boolean leaf = model.isLeaf(node); String label = getDisplayString(path, true, leaf); - plainStr.append(label + "\n"); - htmlStr.append("
  • " + label + "\n"); + plainStr.append(label).append('\n'); + htmlStr.append("
  • ").append(label).append('\n'); } // remove the last newline diff -r dde9f5cfde5f src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java --- a/src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java Tue Aug 12 19:52:30 2014 -0300 @@ -199,4 +199,3 @@ Math.min((int)(c.getBlue()/factor), 255)); } } - diff -r dde9f5cfde5f src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Tue Aug 12 19:52:30 2014 -0300 @@ -1160,15 +1160,15 @@ rows = rowMapper.getRowsForPaths(selection); else rows = null; - sb.append(getClass().getName() + " " + hashCode() + " [ "); + sb.append(getClass().getName()).append(' ').append(hashCode()).append(" [ "); for(int counter = 0; counter < selCount; counter++) { if(rows != null) - sb.append(selection[counter].toString() + "@" + - Integer.toString(rows[counter])+ " "); + sb.append(selection[counter].toString()).append('@') + .append(Integer.toString(rows[counter])).append(' '); else - sb.append(selection[counter].toString() + " "); + sb.append(selection[counter].toString()).append(' '); } - sb.append("]"); + sb.append(']'); return sb.toString(); } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/font/AttributeValues.java --- a/src/share/classes/sun/font/AttributeValues.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/AttributeValues.java Tue Aug 12 19:52:30 2014 -0300 @@ -542,7 +542,7 @@ } } } - b.append("[btx=" + baselineTransform + ", ctx=" + charTransform + "]"); + b.append("[btx=").append(baselineTransform).append(", ctx=").append(charTransform).append(']'); b.append('}'); return b.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/Decoration.java --- a/src/share/classes/sun/font/Decoration.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/Decoration.java Tue Aug 12 19:52:30 2014 -0300 @@ -431,12 +431,12 @@ StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append("["); - if (fgPaint != null) sb.append("fgPaint: " + fgPaint); - if (bgPaint != null) sb.append(" bgPaint: " + bgPaint); + if (fgPaint != null) sb.append("fgPaint: ").append(fgPaint); + if (bgPaint != null) sb.append(" bgPaint: ").append(bgPaint); if (swapColors) sb.append(" swapColors: true"); if (strikethrough) sb.append(" strikethrough: true"); - if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline); - if (imUnderline != null) sb.append(" imUnderline: " + imUnderline); + if (stdUnderline != null) sb.append(" stdUnderline: ").append(stdUnderline); + if (imUnderline != null) sb.append(" imUnderline: ").append(imUnderline); sb.append("]"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/font/StandardGlyphVector.java --- a/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/font/StandardGlyphVector.java Tue Aug 12 19:52:30 2014 -0300 @@ -1894,9 +1894,9 @@ } } catch(Exception e) { - buf.append(" " + e.getMessage()); + buf.append(' ').append(e.getMessage()); } - buf.append("}"); + buf.append('}'); return buf; } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/launcher/LauncherHelper.java --- a/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/launcher/LauncherHelper.java Tue Aug 12 19:52:30 2014 -0300 @@ -369,10 +369,9 @@ static void appendVmErgoMessage(boolean isServerClass, String vm) { outBuf = outBuf.append(getLocalizedMessage("java.launcher.ergo.message1", vm)); - outBuf = (isServerClass) - ? outBuf.append(",\n" + - getLocalizedMessage("java.launcher.ergo.message2") + "\n\n") - : outBuf.append(".\n\n"); + outBuf = (isServerClass) ? outBuf.append(",\n") + .append(getLocalizedMessage("java.launcher.ergo.message2")) + .append("\n\n") : outBuf.append(".\n\n"); } /** -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/management/Agent.java --- a/src/share/classes/sun/management/Agent.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/Agent.java Tue Aug 12 19:52:31 2014 -0300 @@ -502,7 +502,7 @@ } else { StringBuilder message = new StringBuilder(params[0]); for (int i = 1; i < params.length; i++) { - message.append(" " + params[i]); + message.append(' ').append(params[i]); } error(key, message.toString()); } diff -r dde9f5cfde5f src/share/classes/sun/management/MappedMXBeanType.java --- a/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/management/MappedMXBeanType.java Tue Aug 12 19:52:31 2014 -0300 @@ -289,7 +289,7 @@ if (et.isPrimitive()) { className = new StringBuilder(c.getName()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); @@ -385,7 +385,7 @@ if (elementType instanceof Class && ((Class) elementType).isPrimitive()) { className = new StringBuilder(gat.toString()); } else { - className.append("L" + baseElementType.getTypeName() + ";"); + className.append('L').append(baseElementType.getTypeName()).append(';'); } try { mappedTypeClass = Class.forName(className.toString()); -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java --- a/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java Tue Aug 12 19:52:31 2014 -0300 @@ -463,12 +463,12 @@ // --------- - private static void appendIfLiteralAddress(String addr, StringBuffer sb) { + private static void appendIfLiteralAddress(String addr, StringBuilder sb) { if (IPAddressUtil.isIPv4LiteralAddress(addr)) { - sb.append("dns://" + addr + " "); + sb.append("dns://").append(addr).append(' '); } else { if (IPAddressUtil.isIPv6LiteralAddress(addr)) { - sb.append("dns://[" + addr + "] "); + sb.append("dns://[").append(addr).append("] "); } } } @@ -478,7 +478,7 @@ * corresponding to the supplied List of nameservers. */ private static String createProviderURL(List nsList) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (String s: nsList) { appendIfLiteralAddress(s, sb); } @@ -491,7 +491,7 @@ * contained in the provided str. */ private static String createProviderURL(String str) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(str, ","); while (st.hasMoreTokens()) { appendIfLiteralAddress(st.nextToken(), sb); diff -r dde9f5cfde5f src/share/classes/sun/net/util/URLUtil.java --- a/src/share/classes/sun/net/util/URLUtil.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/util/URLUtil.java Tue Aug 12 19:52:31 2014 -0300 @@ -77,4 +77,3 @@ return strForm.toString(); } } - diff -r dde9f5cfde5f src/share/classes/sun/net/www/HeaderParser.java --- a/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/HeaderParser.java Tue Aug 12 19:52:31 2014 -0300 @@ -220,21 +220,23 @@ public String toString () { Iterator k = keys(); - StringBuffer sbuf = new StringBuffer(); - sbuf.append ("{size="+asize+" nkeys="+nkeys+" "); + StringBuilder sb = new StringBuilder(); + sb.append("{size=").append(asize).append(" nkeys=").append(nkeys) + .append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } - sbuf.append (" {"+key+(val==null?"":","+val)+"}"); + sb.append(" {").append(key).append(val == null ? "" : "," + val) + .append('}'); if (k.hasNext()) { - sbuf.append (","); + sb.append (','); } } - sbuf.append (" }"); - return new String (sbuf); + sb.append (" }"); + return new String (sb); } public int findInt(String k, int Default) { diff -r dde9f5cfde5f src/share/classes/sun/net/www/MimeEntry.java --- a/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/MimeEntry.java Tue Aug 12 19:52:31 2014 -0300 @@ -288,7 +288,7 @@ int action = getAction(); if (action != MimeEntry.UNKNOWN) { - sb.append("action=" + actionKeywords[action]); + sb.append("action=").append(actionKeywords[action]); needSeparator = true; } @@ -297,7 +297,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("application=" + command); + sb.append("application=").append(command); needSeparator = true; } @@ -305,7 +305,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("icon=" + getImageFileName()); + sb.append("icon=").append(getImageFileName()); needSeparator = true; } @@ -314,7 +314,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("file_extensions=" + extensions); + sb.append("file_extensions=").append(extensions); needSeparator = true; } @@ -323,7 +323,7 @@ if (needSeparator) { sb.append(separator); } - sb.append("description=" + description); + sb.append("description=").append(description); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/net/www/protocol/http/AuthScheme.java --- a/src/share/classes/sun/net/www/protocol/http/AuthScheme.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/protocol/http/AuthScheme.java Tue Aug 12 19:52:31 2014 -0300 @@ -35,4 +35,3 @@ KERBEROS, UNKNOWN; } - diff -r dde9f5cfde5f src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java --- a/src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java Tue Aug 12 19:52:31 2014 -0300 @@ -202,4 +202,3 @@ return npath; } } - diff -r dde9f5cfde5f src/share/classes/sun/net/www/protocol/http/Negotiator.java --- a/src/share/classes/sun/net/www/protocol/http/Negotiator.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/protocol/http/Negotiator.java Tue Aug 12 19:52:31 2014 -0300 @@ -81,4 +81,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java --- a/src/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java Tue Aug 12 19:52:31 2014 -0300 @@ -56,4 +56,3 @@ public boolean isTrustedSite(URL url) { return true; } } } - -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/security/acl/AclEntryImpl.java --- a/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/acl/AclEntryImpl.java Tue Aug 12 19:52:31 2014 -0300 @@ -137,26 +137,30 @@ /** * Return a string representation of the contents of the ACL entry. */ - public String toString() { - StringBuffer s = new StringBuffer(); - if (negative) - s.append("-"); - else - s.append("+"); - if (user instanceof Group) - s.append("Group."); - else - s.append("User."); - s.append(user + "="); - Enumeration e = permissions(); - while(e.hasMoreElements()) { - Permission p = e.nextElement(); - s.append(p); - if (e.hasMoreElements()) - s.append(","); + public String toString() { + StringBuffer sb = new StringBuffer(); + if (negative) { + sb.append('-'); + } else { + sb.append('+'); + } + if (user instanceof Group) { + sb.append("Group."); + } else { + sb.append("User."); + } + sb.append(user).append('='); + + Enumeration e = permissions(); + while (e.hasMoreElements()) { + Permission p = e.nextElement(); + sb.append(p); + if (e.hasMoreElements()) { + sb.append(','); + } + } + return sb.toString(); } - return new String(s); - } /** * Clones an AclEntry. diff -r dde9f5cfde5f src/share/classes/sun/security/jgss/GSSCaller.java --- a/src/share/classes/sun/security/jgss/GSSCaller.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/jgss/GSSCaller.java Tue Aug 12 19:52:31 2014 -0300 @@ -46,4 +46,3 @@ return "GSSCaller{" + name + '}'; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/jgss/HttpCaller.java --- a/src/share/classes/sun/security/jgss/HttpCaller.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/jgss/HttpCaller.java Tue Aug 12 19:52:31 2014 -0300 @@ -43,4 +43,3 @@ return hci; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/jgss/spnego/SpNegoContext.java --- a/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java Tue Aug 12 19:52:31 2014 -0300 @@ -1231,4 +1231,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/KdcComm.java --- a/src/share/classes/sun/security/krb5/KdcComm.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/KdcComm.java Tue Aug 12 19:52:31 2014 -0300 @@ -560,4 +560,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java --- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java Tue Aug 12 19:52:31 2014 -0300 @@ -640,8 +640,7 @@ for (int i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { - digestString.append("0" + - Integer.toHexString(digest[i] & 0x000000ff)); + digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs/SigningCertificateInfo.java --- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java Tue Aug 12 19:52:31 2014 -0300 @@ -158,8 +158,8 @@ } sb.append(hexDumper.encode(certHash)); if (issuer != null && serialNumber != null) { - sb.append("\n\tIssuer: " + issuer + "\n"); - sb.append("\t" + serialNumber); + sb.append("\n\tIssuer: ").append(issuer).append('\n'); + sb.append('\t').append(serialNumber); } sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue Aug 12 19:52:31 2014 -0300 @@ -196,24 +196,24 @@ } else if (type == ATTR_CLASS_CERT) { sb.append("\ttype=[trusted cert]\n"); } - sb.append("\tlabel=[" + label + "]\n"); + sb.append("\tlabel=[").append(label).append("]\n"); if (id == null) { sb.append("\tid=[null]\n"); } else { - sb.append("\tid=" + P11KeyStore.getID(id) + "\n"); + sb.append("\tid=").append(P11KeyStore.getID(id)).append('\n'); } - sb.append("\ttrusted=[" + trusted + "]\n"); - sb.append("\tmatched=[" + matched + "]\n"); + sb.append("\ttrusted=[").append(trusted).append("]\n"); + sb.append("\tmatched=[").append(matched).append("]\n"); if (cert == null) { sb.append("\tcert=[null]\n"); } else { - sb.append("\tcert=[\tsubject: " + - cert.getSubjectX500Principal() + - "\n\t\tissuer: " + - cert.getIssuerX500Principal() + - "\n\t\tserialNum: " + - cert.getSerialNumber().toString() + - "]"); + sb.append("\tcert=[\tsubject: ") + .append(cert.getSubjectX500Principal()) + .append("\n\t\tissuer: ") + .append(cert.getIssuerX500Principal()) + .append("\n\t\tserialNum: ") + .append(cert.getSerialNumber().toString()) + .append(']'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/PolicyFile.java --- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Tue Aug 12 19:52:31 2014 -0300 @@ -1485,30 +1485,30 @@ } int startIndex = 0; int v; - StringBuilder sb = new StringBuilder(); - while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { + StringBuilder sb = new StringBuilder(); + while ((v = sp.getSelfName().indexOf(SELF, startIndex)) != -1) { - // add non-SELF string - sb.append(sp.getSelfName().substring(startIndex, v)); + // add non-SELF string + sb.append(sp.getSelfName().substring(startIndex, v)); - // expand SELF - Iterator pli = entryPs.iterator(); - while (pli.hasNext()) { - PolicyParser.PrincipalEntry pppe = pli.next(); - String[][] principalInfo = getPrincipalInfo(pppe,pdp); - for (int i = 0; i < principalInfo.length; i++) { - if (i != 0) { - sb.append(", "); - } - sb.append(principalInfo[i][0] + " " + - "\"" + principalInfo[i][1] + "\""); + // expand SELF + Iterator pli = entryPs.iterator(); + while (pli.hasNext()) { + PolicyParser.PrincipalEntry pppe = pli.next(); + String[][] principalInfo = getPrincipalInfo(pppe, pdp); + for (int i = 0; i < principalInfo.length; i++) { + if (i != 0) { + sb.append(", "); + } + sb.append(principalInfo[i][0]).append(' ').append('"') + .append(principalInfo[i][1]).append('"'); + } + if (pli.hasNext()) { + sb.append(", "); + } + } + startIndex = v + SELF.length(); } - if (pli.hasNext()) { - sb.append(", "); - } - } - startIndex = v + SELF.length(); - } // add remaining string (might be the entire string) sb.append(sp.getSelfName().substring(startIndex)); @@ -1774,17 +1774,17 @@ Principal[] principals = pd.getPrincipals(); String pals = ""; if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); + StringBuilder palSB = new StringBuilder("(principals "); for (int i = 0; i < principals.length; i++) { - palBuf.append(principals[i].getClass().getName() + - " \"" + principals[i].getName() + - "\""); + palSB.append(principals[i].getClass().getName()) + .append(" \"").append(principals[i].getName()) + .append('"'); if (i < principals.length-1) - palBuf.append(", "); + palSB.append(", "); else - palBuf.append(")"); + palSB.append(')'); } - pals = palBuf.toString(); + pals = palSB.toString(); } return "PD CodeSource: " + pd.getCodeSource() @@ -1884,7 +1884,7 @@ throw new Exception(form.format(source)); } - sb.append(X500PRINCIPAL + " \"" + suffix + "\""); + sb.append(X500PRINCIPAL).append(" \"").append(suffix).append('"'); startIndex = e+2; } else { MessageFormat form = new MessageFormat diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java --- a/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java Tue Aug 12 19:52:31 2014 -0300 @@ -363,4 +363,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/CertId.java --- a/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/CertId.java Tue Aug 12 19:52:31 2014 -0300 @@ -223,13 +223,13 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CertId \n"); - sb.append("Algorithm: " + hashAlgId.toString() +"\n"); + sb.append("Algorithm: ").append(hashAlgId.toString()).append('\n'); sb.append("issuerNameHash \n"); HexDumpEncoder encoder = new HexDumpEncoder(); sb.append(encoder.encode(issuerNameHash)); sb.append("\nissuerKeyHash: \n"); sb.append(encoder.encode(issuerKeyHash)); - sb.append("\n" + certSerialNumber.toString()); + sb.append('\n').append(certSerialNumber.toString()); return sb.toString(); } } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Tue Aug 12 19:52:31 2014 -0300 @@ -812,14 +812,14 @@ StringBuilder sb = new StringBuilder(); sb.append("SingleResponse: \n"); sb.append(certId); - sb.append("\nCertStatus: "+ certStatus + "\n"); + sb.append("\nCertStatus: ").append(certStatus).append('\n'); if (certStatus == CertStatus.REVOKED) { - sb.append("revocationTime is " + revocationTime + "\n"); - sb.append("revocationReason is " + revocationReason + "\n"); + sb.append("revocationTime is ").append(revocationTime).append('\n'); + sb.append("revocationReason is ").append(revocationReason).append('\n'); } - sb.append("thisUpdate is " + thisUpdate + "\n"); + sb.append("thisUpdate is ").append(thisUpdate).append('\n'); if (nextUpdate != null) { - sb.append("nextUpdate is " + nextUpdate + "\n"); + sb.append("nextUpdate is ").append(nextUpdate).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java --- a/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java Tue Aug 12 19:52:31 2014 -0300 @@ -124,7 +124,7 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); sb.append(super.toString()); - sb.append(" Build Forward Flag: " + String.valueOf(buildForward) + "\n"); + sb.append(" Build Forward Flag: ").append(String.valueOf(buildForward)).append('\n'); sb.append("]\n"); return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/provider/certpath/UntrustedChecker.java --- a/src/share/classes/sun/security/provider/certpath/UntrustedChecker.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/provider/certpath/UntrustedChecker.java Tue Aug 12 19:52:31 2014 -0300 @@ -86,4 +86,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Aug 12 19:52:31 2014 -0300 @@ -1478,7 +1478,7 @@ boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/MAC.java --- a/src/share/classes/sun/security/ssl/MAC.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/MAC.java Tue Aug 12 19:52:31 2014 -0300 @@ -165,4 +165,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java --- a/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java Tue Aug 12 19:52:31 2014 -0300 @@ -472,4 +472,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/ServerNameExtension.java --- a/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/ServerNameExtension.java Tue Aug 12 19:52:31 2014 -0300 @@ -267,11 +267,11 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", server_name: "); for (SNIServerName sniName : sniMap.values()) { - sb.append("[" + sniName + "]"); + sb.append('[').append(sniName).append(']'); } - - return "Extension " + type + ", server_name: " + sb; + return sb.toString(); } private static class UnknownServerName extends SNIServerName { diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java --- a/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Tue Aug 12 19:52:31 2014 -0300 @@ -119,17 +119,16 @@ @Override public String toString() { StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", signature_algorithms: "); boolean opened = false; for (SignatureAndHashAlgorithm signAlg : algorithms) { if (opened) { - sb.append(", " + signAlg.getAlgorithmName()); + sb.append(", ").append(signAlg.getAlgorithmName()); } else { sb.append(signAlg.getAlgorithmName()); opened = true; } } - - return "Extension " + type + ", signature_algorithms: " + sb; + return sb.toString(); } } - diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java --- a/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java Tue Aug 12 19:52:31 2014 -0300 @@ -434,4 +434,3 @@ } } } - diff -r dde9f5cfde5f src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java --- a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Aug 12 19:52:31 2014 -0300 @@ -112,37 +112,37 @@ @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("Extension " + type + ", curve names: {"); - boolean first = true; - for (int curveId : curveIds) { - if (first) { - first = false; - } else { - sb.append(", "); - } - // first check if it is a known named curve, then try other cases. - String oid = getCurveOid(curveId); - if (oid != null) { - ECParameterSpec spec = JsseJce.getECParameterSpec(oid); - // this toString() output will look nice for the current - // implementation of the ECParameterSpec class in the Sun - // provider, but may not look good for other implementations. - if (spec != null) { - sb.append(spec.toString().split(" ")[0]); - } else { - sb.append(oid); + StringBuilder sb = new StringBuilder(); + sb.append("Extension ").append(type).append(", curve names: {"); + boolean first = true; + for (int curveId : curveIds) { + if (first) { + first = false; + } else { + sb.append(", "); + } + // first check if it is a known named curve, then try other cases. + String oid = getCurveOid(curveId); + if (oid != null) { + ECParameterSpec spec = JsseJce.getECParameterSpec(oid); + // this toString() output will look nice for the current + // implementation of the ECParameterSpec class in the Sun + // provider, but may not look good for other implementations. + if (spec != null) { + sb.append(spec.toString().split(" ")[0]); + } else { + sb.append(oid); + } + } else if (curveId == ARBITRARY_PRIME) { + sb.append("arbitrary_explicit_prime_curves"); + } else if (curveId == ARBITRARY_CHAR2) { + sb.append("arbitrary_explicit_char2_curves"); + } else { + sb.append("unknown curve ").append(curveId); + } } - } else if (curveId == ARBITRARY_PRIME) { - sb.append("arbitrary_explicit_prime_curves"); - } else if (curveId == ARBITRARY_CHAR2) { - sb.append("arbitrary_explicit_char2_curves"); - } else { - sb.append("unknown curve " + curveId); - } - } - sb.append("}"); - return sb.toString(); + sb.append("}"); + return sb.toString(); } // Test whether we support the curve with the given index. diff -r dde9f5cfde5f src/share/classes/sun/security/tools/jarsigner/Main.java --- a/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Tue Aug 12 19:52:31 2014 -0300 @@ -676,14 +676,13 @@ ((man.getAttributes(name) != null) || (man.getAttributes("./"+name) != null) || (man.getAttributes("/"+name) != null)); - sb.append( - (isSigned ? rb.getString("s") : rb.getString("SPACE")) + - (inManifest ? rb.getString("m") : rb.getString("SPACE")) + - (inStore ? rb.getString("k") : rb.getString("SPACE")) + - (inScope ? rb.getString("i") : rb.getString("SPACE")) + - ((inStoreOrScope & NOT_ALIAS) != 0 ?"X":" ") + - rb.getString("SPACE")); - sb.append("|"); + sb.append(isSigned ? rb.getString("s") : rb.getString("SPACE")) + .append(inManifest ? rb.getString("m") : rb.getString("SPACE")) + .append(inStore ? rb.getString("k") : rb.getString("SPACE")) + .append(inScope ? rb.getString("i") : rb.getString("SPACE")) + .append((inStoreOrScope & NOT_ALIAS) != 0 ? 'X' : ' ') + .append(rb.getString("SPACE")); + sb.append('|'); } // When -certs provided, display info has extra empty @@ -704,11 +703,13 @@ // Print no info for unsigned entries when -verbose:all, // to be consistent with old behavior. if (signatureRelated(name)) { - sb.append("\n" + tab + rb.getString( - ".Signature.related.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Signature.related.entries.")) + .append("\n\n"); } else { - sb.append("\n" + tab + rb.getString( - ".Unsigned.entries.") + "\n\n"); + sb.append('\n').append(tab).append( + rb.getString(".Unsigned.entries.")) + .append("\n\n"); } } @@ -1605,8 +1606,8 @@ // No more warning, we alreay have hasExpiredCert or notYetValidCert } else { chainNotValidated = true; - sb.append(tab + rb.getString(".CertPath.not.validated.") + - e.getLocalizedMessage() + "]\n"); // TODO + sb.append(tab).append(rb.getString(".CertPath.not.validated.")) + .append(e.getLocalizedMessage()).append("]\n"); // TODO } } String result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/tools/keytool/Main.java --- a/src/share/classes/sun/security/tools/keytool/Main.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/keytool/Main.java Tue Aug 12 19:52:31 2014 -0300 @@ -4234,4 +4234,3 @@ return new Pair<>(a,b); } } - diff -r dde9f5cfde5f src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/tools/policytool/PolicyTool.java Tue Aug 12 19:52:31 2014 -0300 @@ -980,8 +980,9 @@ grantEntry.principals.listIterator(); while (list.hasNext()) { PolicyParser.PrincipalEntry pppe = list.next(); - sb.append(" Principal " + pppe.getDisplayClass() + " " + - pppe.getDisplayName(true)); + sb.append(" Principal ").append(pppe.getDisplayClass()) + .append(' ') + .append(pppe.getDisplayName(true)); if (list.hasNext()) sb.append(", "); } result = sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java --- a/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java Tue Aug 12 19:52:31 2014 -0300 @@ -455,4 +455,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/ECParameters.java --- a/src/share/classes/sun/security/util/ECParameters.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/ECParameters.java Tue Aug 12 19:52:31 2014 -0300 @@ -233,4 +233,3 @@ return namedCurve.toString(); } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/KeyUtil.java --- a/src/share/classes/sun/security/util/KeyUtil.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/KeyUtil.java Tue Aug 12 19:52:31 2014 -0300 @@ -303,4 +303,3 @@ } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources.java --- a/src/share/classes/sun/security/util/Resources.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_de.java --- a/src/share/classes/sun/security/util/Resources_de.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_de.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_es.java --- a/src/share/classes/sun/security/util/Resources_es.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_es.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_fr.java --- a/src/share/classes/sun/security/util/Resources_fr.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_fr.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_it.java --- a/src/share/classes/sun/security/util/Resources_it.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_it.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_ja.java --- a/src/share/classes/sun/security/util/Resources_ja.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_ja.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_ko.java --- a/src/share/classes/sun/security/util/Resources_ko.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_ko.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_pt_BR.java --- a/src/share/classes/sun/security/util/Resources_pt_BR.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_pt_BR.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_sv.java --- a/src/share/classes/sun/security/util/Resources_sv.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_sv.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_zh_CN.java --- a/src/share/classes/sun/security/util/Resources_zh_CN.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_zh_CN.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/util/Resources_zh_TW.java --- a/src/share/classes/sun/security/util/Resources_zh_TW.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/util/Resources_zh_TW.java Tue Aug 12 19:52:31 2014 -0300 @@ -169,4 +169,3 @@ return contents; } } - diff -r dde9f5cfde5f src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Tue Aug 12 19:52:31 2014 -0300 @@ -1062,7 +1062,7 @@ } else { boolean quoteNeeded = false; - StringBuilder sbuffer = new StringBuilder(); + StringBuilder sb = new StringBuilder(); boolean previousWhite = false; final String escapees = ",+=\n<>#;\\\""; @@ -1079,7 +1079,7 @@ for (int i = 0; i < length; i++) { char c = valStr.charAt(i); if (alreadyQuoted && (i == 0 || i == length - 1)) { - sbuffer.append(c); + sb.append(c); continue; } if (DerValue.isPrintableStringChar(c) || @@ -1096,7 +1096,7 @@ if (!(c == ' ' || c == '\n')) { // escape '"' and '\' if (c == '"' || c == '\\') { - sbuffer.append('\\'); + sb.append('\\'); } previousWhite = false; } else { @@ -1106,7 +1106,7 @@ previousWhite = true; } - sbuffer.append(c); + sb.append(c); } else if (debug != null && Debug.isOn("ava")) { @@ -1119,26 +1119,26 @@ byte[] valueBytes = Character.toString(c).getBytes("UTF8"); for (int j = 0; j < valueBytes.length; j++) { - sbuffer.append('\\'); + sb.append('\\'); char hexChar = Character.forDigit (0xF & (valueBytes[j] >>> 4), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); hexChar = Character.forDigit (0xF & (valueBytes[j]), 16); - sbuffer.append(Character.toUpperCase(hexChar)); + sb.append(Character.toUpperCase(hexChar)); } } else { // append non-printable/non-escaped char previousWhite = false; - sbuffer.append(c); + sb.append(c); } } // quote if trailing whitespace - if (sbuffer.length() > 0) { - char trailChar = sbuffer.charAt(sbuffer.length() - 1); + if (sb.length() > 0) { + char trailChar = sb.charAt(sb.length() - 1); if (trailChar == ' ' || trailChar == '\n') { quoteNeeded = true; } @@ -1147,9 +1147,9 @@ // Emit the string ... quote it if needed // if string is already quoted, don't re-quote if (!alreadyQuoted && quoteNeeded) { - retval.append("\"" + sbuffer.toString() + "\""); + retval.append('"').append(sb.toString()).append('"'); } else { - retval.append(sbuffer.toString()); + retval.append(sb.toString()); } } } catch (IOException e) { diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPoint.java --- a/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPoint.java Tue Aug 12 19:52:31 2014 -0300 @@ -381,22 +381,22 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPoint:\n " + fullName + "\n"); + sb.append("DistributionPoint:\n ").append(fullName).append('\n'); } if (relativeName != null) { - sb.append("DistributionPoint:\n " + relativeName + "\n"); + sb.append("DistributionPoint:\n ").append(relativeName).append('\n'); } if (reasonFlags != null) { sb.append(" ReasonFlags:\n"); for (int i = 0; i < reasonFlags.length; i++) { if (reasonFlags[i]) { - sb.append(" " + reasonToString(i) + "\n"); + sb.append(" ").append(reasonToString(i)).append('\n'); } } } if (crlIssuer != null) { - sb.append(" CRLIssuer:" + crlIssuer + "\n"); + sb.append(" CRLIssuer:").append(crlIssuer).append('\n'); } return sb.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/security/x509/DistributionPointName.java --- a/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/DistributionPointName.java Tue Aug 12 19:52:31 2014 -0300 @@ -231,10 +231,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); if (fullName != null) { - sb.append("DistributionPointName:\n " + fullName + "\n"); + sb.append("DistributionPointName:\n ").append(fullName).append('\n'); } else { - sb.append("DistributionPointName:\n " + relativeName + "\n"); + sb.append("DistributionPointName:\n ").append(relativeName).append('\n'); } return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/PolicyInformation.java --- a/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/PolicyInformation.java Tue Aug 12 19:52:31 2014 -0300 @@ -258,9 +258,9 @@ * Return a printable representation of the PolicyInformation. */ public String toString() { - StringBuilder s = new StringBuilder(" [" + policyIdentifier.toString()); - s.append(policyQualifiers + " ]\n"); - return s.toString(); + StringBuilder sb = new StringBuilder(" [" + policyIdentifier.toString()); + sb.append(policyQualifiers).append(" ]\n"); + return sb.toString(); } /** diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Tue Aug 12 19:52:31 2014 -0300 @@ -292,17 +292,17 @@ StringBuilder sb = new StringBuilder(); sb.append(serialNumber.toString()); - sb.append(" On: " + revocationDate.toString()); + sb.append(" On: ").append(revocationDate.toString()); if (certIssuer != null) { - sb.append("\n Certificate issuer: " + certIssuer); + sb.append("\n Certificate issuer: ").append(certIssuer); } if (extensions != null) { Collection allEntryExts = extensions.getAllExtensions(); Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + exts.length); + sb.append("\n CRL Entry Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n [" + (i+1) + "]: "); + sb.append("\n [").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -313,9 +313,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CRLImpl.java --- a/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CRLImpl.java Tue Aug 12 19:52:31 2014 -0300 @@ -537,31 +537,32 @@ */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("X.509 CRL v" + (version+1) + "\n"); + sb.append("X.509 CRL v").append(version + 1).append('\n'); if (sigAlgId != null) - sb.append("Signature Algorithm: " + sigAlgId.toString() + - ", OID=" + (sigAlgId.getOID()).toString() + "\n"); + sb.append("Signature Algorithm: ").append(sigAlgId.toString()) + .append(", OID=") + .append((sigAlgId.getOID()).toString()).append('\n'); if (issuer != null) - sb.append("Issuer: " + issuer.toString() + "\n"); + sb.append("Issuer: ").append(issuer.toString()).append('\n'); if (thisUpdate != null) - sb.append("\nThis Update: " + thisUpdate.toString() + "\n"); + sb.append("\nThis Update: ").append(thisUpdate.toString()).append('\n'); if (nextUpdate != null) - sb.append("Next Update: " + nextUpdate.toString() + "\n"); + sb.append("Next Update: ").append(nextUpdate.toString()).append('\n'); if (revokedList.isEmpty()) sb.append("\nNO certificates have been revoked\n"); else { - sb.append("\nRevoked Certificates: " + revokedList.size()); + sb.append("\nRevoked Certificates: ").append(revokedList.size()); int i = 1; for (X509CRLEntry entry: revokedList) { - sb.append("\n[" + i++ + "] " + entry.toString()); + sb.append("\n[").append(i++).append("] ").append(entry.toString()); } } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Object[] objs = allExts.toArray(); - sb.append("\nCRL Extensions: " + objs.length); + sb.append("\nCRL Extensions: ").append(objs.length); for (int i = 0; i < objs.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = (Extension)objs[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -572,9 +573,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); // sub-class exists @@ -585,8 +585,7 @@ } if (signature != null) { HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append("\nSignature:\n" + encoder.encodeBuffer(signature) - + "\n"); + sb.append("\nSignature:\n").append(encoder.encodeBuffer(signature)).append('\n'); } else sb.append("NOT signed yet\n"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertImpl.java --- a/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertImpl.java Tue Aug 12 19:52:31 2014 -0300 @@ -802,11 +802,11 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(info.toString() + "\n"); - sb.append(" Algorithm: [" + algId.toString() + "]\n"); + sb.append(info.toString()).append('\n'); + sb.append(" Algorithm: [").append(algId.toString()).append("]\n"); HexDumpEncoder encoder = new HexDumpEncoder(); - sb.append(" Signature:\n" + encoder.encodeBuffer(signature)); + sb.append(" Signature:\n").append(encoder.encodeBuffer(signature)); sb.append("\n]"); return sb.toString(); diff -r dde9f5cfde5f src/share/classes/sun/security/x509/X509CertInfo.java --- a/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/security/x509/X509CertInfo.java Tue Aug 12 19:52:31 2014 -0300 @@ -298,27 +298,27 @@ StringBuilder sb = new StringBuilder(); sb.append("[\n"); - sb.append(" " + version.toString() + "\n"); - sb.append(" Subject: " + subject.toString() + "\n"); - sb.append(" Signature Algorithm: " + algId.toString() + "\n"); - sb.append(" Key: " + pubKey.toString() + "\n"); - sb.append(" " + interval.toString() + "\n"); - sb.append(" Issuer: " + issuer.toString() + "\n"); - sb.append(" " + serialNum.toString() + "\n"); + sb.append(" ").append(version.toString()).append('\n'); + sb.append(" Subject: ").append(subject.toString()).append('\n'); + sb.append(" Signature Algorithm: ").append(algId.toString()).append('\n'); + sb.append(" Key: ").append(pubKey.toString()).append('\n'); + sb.append(" ").append(interval.toString()).append('\n'); + sb.append(" Issuer: ").append(issuer.toString()).append('\n'); + sb.append(" ").append(serialNum.toString()).append('\n'); // optional v2, v3 extras if (issuerUniqueId != null) { - sb.append(" Issuer Id:\n" + issuerUniqueId.toString() + "\n"); + sb.append(" Issuer Id:\n").append(issuerUniqueId.toString()).append('\n'); } if (subjectUniqueId != null) { - sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); + sb.append(" Subject Id:\n").append(subjectUniqueId.toString()).append('\n'); } if (extensions != null) { Collection allExts = extensions.getAllExtensions(); Extension[] exts = allExts.toArray(new Extension[0]); - sb.append("\nCertificate Extensions: " + exts.length); + sb.append("\nCertificate Extensions: ").append(exts.length); for (int i = 0; i < exts.length; i++) { - sb.append("\n[" + (i+1) + "]: "); + sb.append("\n[").append(i + 1).append("]: "); Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { @@ -329,9 +329,8 @@ out.putOctetString(extValue); extValue = out.toByteArray(); HexDumpEncoder enc = new HexDumpEncoder(); - sb.append("Extension unknown: " - + "DER encoded OCTET string =\n" - + enc.encodeBuffer(extValue) + "\n"); + sb.append("Extension unknown: " + "DER encoded OCTET string =\n") + .append(enc.encodeBuffer(extValue)).append('\n'); } } else sb.append(ext.toString()); //sub-class exists @@ -341,10 +340,10 @@ } Map invalid = extensions.getUnparseableExtensions(); if (invalid.isEmpty() == false) { - sb.append("\nUnparseable certificate extensions: " + invalid.size()); + sb.append("\nUnparseable certificate extensions: ").append(invalid.size()); int i = 1; for (Extension ext : invalid.values()) { - sb.append("\n[" + (i++) + "]: "); + sb.append("\n[").append(i++).append("]: "); sb.append(ext); } } -------------- next part -------------- diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/ThreadTab.java --- a/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/ThreadTab.java Tue Aug 12 19:52:31 2014 -0300 @@ -368,7 +368,7 @@ sb.append(Messages.STACK_TRACE); int index = 0; for (StackTraceElement e : ti.getStackTrace()) { - sb.append(e.toString()+"\n"); + sb.append(e.toString()).append('\n'); if (monitors != null) { for (MonitorInfo mi : monitors) { if (mi.getLockedStackDepth() == index) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java --- a/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java Tue Aug 12 19:52:31 2014 -0300 @@ -79,25 +79,25 @@ String textColor = String.format("%06x", foreground.getRGB() & 0xFFFFFF); StringBuilder sb = new StringBuilder(); - sb.append(""); + sb.append("
    "); for (int i = 0; i < arr.length; i++) { if (i % 2 == 0) { - sb.append(""); + sb.append(""); } else { - sb.append(""); + sb.append(""); } } if (arr.length == 0) { - sb.append(""); + sb.append(""); } sb.append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    " +
    -                            (arr[i] == null ?
    -                                arr[i] : htmlize(arr[i].toString())) +
    -                            "
    ")
    +                            .append(arr[i] == null ?
    +                                    arr[i] : htmlize(arr[i].toString()))
    +                            .append("
    "); arrayEditor.setText(sb.toString()); diff -r dde9f5cfde5f src/share/classes/sun/tools/jconsole/inspector/XTree.java --- a/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/XTree.java Tue Aug 12 19:52:31 2014 -0300 @@ -507,13 +507,13 @@ // key order defined by the "orderedKeyPropertyList" for (String key : orderedKeyPropertyList) { if (map.containsKey(key)) { - sb.append(key + "=" + map.get(key) + ","); + sb.append(key).append('=').append(map.get(key)).append(','); map.remove(key); } } // Add the remaining key/value pairs to the buffer for (Map.Entry entry : map.entrySet()) { - sb.append(entry.getKey() + "=" + entry.getValue() + ","); + sb.append(entry.getKey()).append('=').append(entry.getValue()).append(','); } String orderedKeyPropertyListString = sb.toString(); orderedKeyPropertyListString = orderedKeyPropertyListString.substring( @@ -622,7 +622,7 @@ // StringBuilder sb = new StringBuilder(); for (MBeanParameterInfo mbpi : mboi.getSignature()) { - sb.append(mbpi.getType() + ","); + sb.append(mbpi.getType()).append(','); } String signature = sb.toString(); if (signature.length() > 0) { diff -r dde9f5cfde5f src/share/classes/sun/tools/jps/Jps.java --- a/src/share/classes/sun/tools/jps/Jps.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jps/Jps.java Tue Aug 12 19:52:31 2014 -0300 @@ -92,28 +92,28 @@ vm = monitoredHost.getMonitoredVm(id, 0); errorString = " -- main class information unavailable"; - output.append(" " + MonitoredVmUtil.mainClass(vm, + output.append(' ').append(MonitoredVmUtil.mainClass(vm, arguments.showLongPaths())); if (arguments.showMainArgs()) { errorString = " -- main args information unavailable"; String mainArgs = MonitoredVmUtil.mainArgs(vm); if (mainArgs != null && mainArgs.length() > 0) { - output.append(" " + mainArgs); + output.append(' ').append(mainArgs); } } if (arguments.showVmArgs()) { errorString = " -- jvm args information unavailable"; String jvmArgs = MonitoredVmUtil.jvmArgs(vm); if (jvmArgs != null && jvmArgs.length() > 0) { - output.append(" " + jvmArgs); + output.append(' ').append(jvmArgs); } } if (arguments.showVmFlags()) { errorString = " -- jvm flags information unavailable"; String jvmFlags = MonitoredVmUtil.jvmFlags(vm); if (jvmFlags != null && jvmFlags.length() > 0) { - output.append(" " + jvmFlags); + output.append(' ').append(jvmFlags); } } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/RawOutputFormatter.java --- a/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/RawOutputFormatter.java Tue Aug 12 19:52:31 2014 -0300 @@ -50,7 +50,7 @@ StringBuilder headerBuilder = new StringBuilder(); for (Iterator i = logged.iterator(); i.hasNext(); /* empty */ ) { Monitor m = i.next(); - headerBuilder.append(m.getName() + " "); + headerBuilder.append(m.getName()).append(' '); } header = headerBuilder.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/SyntaxException.java --- a/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/SyntaxException.java Tue Aug 12 19:52:31 2014 -0300 @@ -65,7 +65,7 @@ public SyntaxException(int lineno, Set expected, Token found) { StringBuilder msg = new StringBuilder(); - msg.append("Syntax error at line " + lineno + ": Expected one of \'"); + msg.append("Syntax error at line ").append(lineno).append(": Expected one of \'"); boolean first = true; for (Iterator i = expected.iterator(); i.hasNext(); /* empty */) { @@ -74,11 +74,11 @@ msg.append(keyWord); first = false; } else { - msg.append("|" + keyWord); + msg.append('|').append(keyWord); } } - msg.append("\', Found " + found.toMessage()); + msg.append("\', Found ").append(found.toMessage()); message = msg.toString(); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstat/Token.java --- a/src/share/classes/sun/tools/jstat/Token.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstat/Token.java Tue Aug 12 19:52:31 2014 -0300 @@ -89,18 +89,18 @@ sb.append("ttype=TT_EOF"); break; case StreamTokenizer.TT_NUMBER: - sb.append("ttype=TT_NUM,").append("nval="+nval); + sb.append("ttype=TT_NUM,").append("nval=").append(nval); break; case StreamTokenizer.TT_WORD: if (sval == null) { sb.append("ttype=TT_WORD:IDENTIFIER"); } else { - sb.append("ttype=TT_WORD:").append("sval="+sval); + sb.append("ttype=TT_WORD:").append("sval=").append(sval); } break; default: if (ttype == (int)'"') { - sb.append("ttype=TT_STRING:").append("sval="+sval); + sb.append("ttype=TT_STRING:").append("sval=").append(sval); } else { sb.append("ttype=TT_CHAR:").append((char)ttype); } diff -r dde9f5cfde5f src/share/classes/sun/tools/jstatd/RemoteHostImpl.java --- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 05 19:29:00 2014 -0700 +++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java Tue Aug 12 19:52:31 2014 -0300 @@ -68,7 +68,7 @@ sb.append("local://").append(lvmid).append("@localhost"); if (mode != null) { - sb.append("?mode=" + mode); + sb.append("?mode=").append(mode); } String vmidStr = sb.toString(); From xuelei.fan at oracle.com Wed Aug 13 01:44:46 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Wed, 13 Aug 2014 09:44:46 +0800 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required In-Reply-To: <53EA2DE5.9060507@oracle.com> References: <53EA2DE5.9060507@oracle.com> Message-ID: <53EAC30E.9050402@oracle.com> In the new file: 653-677, 719-721: It would be nice to mention "if a security manager is installed," ... 656 * is thrown if the caller does not have the proper permissions. Do we want to point out the actual modify permissions? 721 * SecurityException will be thrown. --------------- Do you want to use the {@code SecurityException} style? 772~777 The words may be able to shorten as: @throws SecurityException if the caller does not have a {@link PrivateCredentialPermission} permission to access the private credentials for this or the provided {@code Subject} 1540 static class AuthPermissionHolder { 1541 static final AuthPermission DO_AS_PERMISSION = 1542 new AuthPermission("doAs"); I'm not sure why define this innner class. Looks like this permissions can be defined as static final variables. Otherwise, it might be better to define AuthPermissionHolder as static final class, or enum. Otherwise, looks fine to me. Xuelei On 8/12/2014 11:08 PM, Sean Mullan wrote: > This is a clarification in the javax.security.auth.Subject javadocs to > indicate what permissions are required for methods that throw > SecurityException: > > http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.00/ > > I also took the opportunity to fix a couple of other minor issues: added > @Override annotations, removed spurious

    tags, and changed @exception > to @throws. > > Thanks, > Sean From weijun.wang at oracle.com Wed Aug 13 10:10:27 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 13 Aug 2014 18:10:27 +0800 Subject: Trusted service? Message-ID: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> Hi All I'm working on "8038089: TLS optional support for Kerberos cipher suites needs to be re-examine" which will separate the implementation of Kerberos-related TLS ciphersuites from the other TLS codes. I am thinking of defining a ServiceLoader interface called ExternalCipherSuiteProvider inside the TLS module and implement a Krb5CipherSuiteProvider in the JGSS module. Now if the JGSS module is installed, it will be found and thus supports the TLS_KRB5_* ciphersuites. However, it looks like any application can include an implementation and register it by adding its own $CLASSPATH/META-INF/services line. Is there anyway I can find out which is the "trusted" one? I've looked at some ServiceLoader example inside JDK and it looks like they first load an implementation specified by a system property and then do the ServiceLoader.load() loop. Is that system property meant to provide the "trusted" or "builtin" implementation? I wonder if it still works now because even if we define a system property (or security property), the implementation class will be invisible in a different module. Thanks Max From Alan.Bateman at oracle.com Wed Aug 13 13:13:45 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Wed, 13 Aug 2014 14:13:45 +0100 Subject: The future of Serialization In-Reply-To: <1407834233.6396.10.camel@Nokia-N900> References: <1407563776.1841.30.camel@Nokia-N900> <53E8A71D.70407@oracle.com> <53E8B1D8.1000200@zeus.net.au> <53E8D0AC.3060108@oracle.com> <1407834233.6396.10.camel@Nokia-N900> Message-ID: <53EB6489.4000309@oracle.com> On 12/08/2014 10:03, Peter Firmstone wrote: > > Interesting, language features for modules, won't necessarily involve > ClassLoader's (my assumptions were based on existing systems) although > you'd expect modules to have their own ProtectionDomain. > I think it would be reasonable to expect to that you should be able to grant permissions to specific modules. This is something for a difference discussion thread of course. > > When is a better timeframe, roughly, to discuss Serializable? > I'm sure there isn't a best time that works for everyone that is interested in this topic. However, in terms of JDK 9 then it seems early enough to do the exploration and prototypes, and get moving on proposals. -Alan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ecki at zusammenkunft.net Wed Aug 13 14:11:03 2014 From: ecki at zusammenkunft.net (Bernd Eckenfels) Date: Wed, 13 Aug 2014 16:11:03 +0200 Subject: AW: Trusted service? In-Reply-To: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> Message-ID: <53eb7200.2234c20a.1042.ffffcc3b@mx.google.com> Just a BTW: It would be really cool to have a SPI interface for that, so people who need SRP, CCM or shared secret handshakes (or stuff like NPN?) don't need to use a third party SSL engine. -- http://bernd.eckenfels.net ----- Urspr?ngliche Nachricht ----- Von: "Wang Weijun" Gesendet: ?13.?08.?2014 12:20 An: "OpenJDK Dev list" ; "OpenJDK Dev list" Betreff: Trusted service? Hi All I'm working on "8038089: TLS optional support for Kerberos cipher suites needs to be re-examine" which will separate the implementation of Kerberos-related TLS ciphersuites from the other TLS codes. I am thinking of defining a ServiceLoader interface called ExternalCipherSuiteProvider inside the TLS module and implement a Krb5CipherSuiteProvider in the JGSS module. Now if the JGSS module is installed, it will be found and thus supports the TLS_KRB5_* ciphersuites. However, it looks like any application can include an implementation and register it by adding its own $CLASSPATH/META-INF/services line. Is there anyway I can find out which is the "trusted" one? I've looked at some ServiceLoader example inside JDK and it looks like they first load an implementation specified by a system property and then do the ServiceLoader.load() loop. Is that system property meant to provide the "trusted" or "builtin" implementation? I wonder if it still works now because even if we define a system property (or security property), the implementation class will be invisible in a different module. Thanks Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alan.Bateman at oracle.com Wed Aug 13 14:20:46 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Wed, 13 Aug 2014 15:20:46 +0100 Subject: Trusted service? In-Reply-To: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> Message-ID: <53EB743E.8050809@oracle.com> On 13/08/2014 11:10, Wang Weijun wrote: > Hi All > > I'm working on "8038089: TLS optional support for Kerberos cipher suites needs to be re-examine" which will separate the implementation of Kerberos-related TLS ciphersuites from the other TLS codes. I am thinking of defining a ServiceLoader interface called ExternalCipherSuiteProvider inside the TLS module and implement a Krb5CipherSuiteProvider in the JGSS module. Now if the JGSS module is installed, it will be found and thus supports the TLS_KRB5_* ciphersuites. > > However, it looks like any application can include an implementation and register it by adding its own $CLASSPATH/META-INF/services line. Is there anyway I can find out which is the "trusted" one? I've looked at some ServiceLoader example inside JDK and it looks like they first load an implementation specified by a system property and then do the ServiceLoader.load() loop. Is that system property meant to provide the "trusted" or "builtin" implementation? I wonder if it still works now because even if we define a system property (or security property), the implementation class will be invisible in a different module. > The usual thing is to just have a default implementation that is used when ServiceLoader doesn't locate a useful provider. You'll find many examples of this in the JDK. In those cases then the default is not listed in a services configuration file. From what you describe then this may be what you want too. ServiceLoader does not have a way to configure a preferred provider so this is one reason why you'll see places where a system property can be used to configured the preferred implementation. -Alan. From sean.mullan at oracle.com Wed Aug 13 14:24:22 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 13 Aug 2014 10:24:22 -0400 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required In-Reply-To: <53EAC30E.9050402@oracle.com> References: <53EA2DE5.9060507@oracle.com> <53EAC30E.9050402@oracle.com> Message-ID: <53EB7516.5020609@oracle.com> On 08/12/2014 09:44 PM, Xuelei Fan wrote: > In the new file: > > 653-677, 719-721: > It would be nice to mention "if a security manager is installed," ... Good point, changed. > 656 * is thrown if the caller does not have the proper permissions. > Do we want to point out the actual modify permissions? This is pointed out in the following paragraph: *

    While iterating through the {@code Set}, * a {@code SecurityException} is thrown * if the caller does not have a {@link PrivateCredentialPermission} * to access a particular Credential. The {@code Iterator} * is nevertheless advanced to the next element in the {@code Set}. > > 721 * SecurityException will be thrown. > --------------- > Do you want to use the {@code SecurityException} style? Fixed. > > 772~777 > The words may be able to shorten as: > @throws SecurityException if the caller does not have > a {@link PrivateCredentialPermission} permission > to access the private credentials for this or > the provided {@code Subject} Good suggestion, changed. > 1540 static class AuthPermissionHolder { > 1541 static final AuthPermission DO_AS_PERMISSION = > 1542 new AuthPermission("doAs"); > I'm not sure why define this innner class. Looks like this permissions > can be defined as static final variables. Otherwise, it might be better > to define AuthPermissionHolder as static final class, or enum. The main benefit of the AuthPermissionHolder class is that it only allocates memory for these constants when the class is loaded which is when one of the security-sensitive methods is invoked and an SM is installed. So there is a small amount of memory savings when you are not using an SM. I think it is still worthwhile in that case. I don't think there are any major benefits switching to an enum here, but I did add the final keyword to the class. Updated webrev: http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.01/ Thanks, Sean > > Otherwise, looks fine to me. > > Xuelei > > On 8/12/2014 11:08 PM, Sean Mullan wrote: >> This is a clarification in the javax.security.auth.Subject javadocs to >> indicate what permissions are required for methods that throw >> SecurityException: >> >> http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.00/ >> >> I also took the opportunity to fix a couple of other minor issues: added >> @Override annotations, removed spurious

    tags, and changed @exception >> to @throws. >> >> Thanks, >> Sean > From vincent.x.ryan at oracle.com Wed Aug 13 15:28:52 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Wed, 13 Aug 2014 16:28:52 +0100 Subject: [9] request for review: 8048512: Uninitialised memory in jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Message-ID: Hello, Please review this fix to cleanup ECC native code. When returning early from two methods, some data structures do not get initialized before use. This fix initializes those structs explicitly. Thanks. Bug: https://bugs.openjdk.java.net/browse/JDK-8048512 Webrev: http://cr.openjdk.java.net/~vinnie/8048512/webrev.00/ From mark.reinhold at oracle.com Wed Aug 13 15:31:19 2014 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Wed, 13 Aug 2014 08:31:19 -0700 Subject: Trusted service? In-Reply-To: <53EB743E.8050809@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com>, <53EB743E.8050809@oracle.com> Message-ID: <20140813083119.502977@eggemoggin.niobe.net> 2014/8/13 7:20 -0700, alan.bateman at oracle.com: > The usual thing is to just have a default implementation that is used > when ServiceLoader doesn't locate a useful provider. You'll find many > examples of this in the JDK. In those cases then the default is not > listed in a services configuration file. From what you describe then > this may be what you want too. > > ServiceLoader does not have a way to configure a preferred provider so > this is one reason why you'll see places where a system property can be > used to configured the preferred implementation. Another alternative is to use the ServiceLoader::loadInstalled method, which will ignore providers on the application class path. - Mark From weijun.wang at oracle.com Thu Aug 14 00:34:07 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 14 Aug 2014 08:34:07 +0800 Subject: Trusted service? In-Reply-To: <53EB743E.8050809@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> <53EB743E.8050809@oracle.com> Message-ID: Yes, I see a lot of places using if (loadProviderFromProperty()) return provider; if (loadProviderAsService()) return provider; The 1st using Class.forName() and 2nd ServiceLoader.load(). I was thinking that the 1st method will not work because Class.forName() on an internal class in another module will not work after module, but now I believe the 2nd method would not work also. Is that right? Or writing the class name in a services file automatically exports it as a service? Now my preferred order will be if (loadProviderFromProperty()) return provider; if (loadProviderAsInstalledService()) return provider; if (loadProviderAsService()) return provider; Thanks Max On Aug 13, 2014, at 22:20, Alan Bateman wrote: > > ServiceLoader does not have a way to configure a preferred provider so this is one reason why you'll see places where a system property can be used to configured the preferred implementation. > > -Alan. From weijun.wang at oracle.com Thu Aug 14 07:47:25 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 14 Aug 2014 15:47:25 +0800 Subject: Trusted service? In-Reply-To: <53eb7200.2234c20a.1042.ffffcc3b@mx.google.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> <53eb7200.2234c20a.1042.ffffcc3b@mx.google.com> Message-ID: <693DB87A-8115-4EEB-A311-2CAD0C06CDCC@oracle.com> On Aug 13, 2014, at 22:11, Bernd Eckenfels wrote: > Just a BTW: It would be really cool to have a SPI interface for that, so people who need SRP, CCM or shared secret handshakes (or stuff like NPN?) don't need to use a third party SSL engine. Are they all ciphersuites not based on certificates? My main area is Kerberos so have never heard of them, but I'll be very glad if we can support them in some way. My current webrev is at http://cr.openjdk.java.net/~weijun/8038089/webrev.02/. There is an ExternalCipherSuiteProvider interface but you can see it is not really general and uses Kerberos-concept like ticket. Also inside the SSL codes I create a Krb5Helper which will be called when TLS_KRB5_* ciphersuites are used, like this case K_KRB5: case K_KRB5_EXPORT: Krb5Helper.doXXX(...): Ideally, in order to deal with other ExternalCipherSuiteProvider impls, it should be something like default: getExternalHelper(keyExchange).doXXX(...) Anyway, please tell me if this step is something you believe useful and what kind of change is needed to be able to support more ciphersuites. The interface is now internal so we can evolve it later. Any contribution is welcomed. Thanks Max From Alan.Bateman at oracle.com Thu Aug 14 08:03:05 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 14 Aug 2014 09:03:05 +0100 Subject: Trusted service? In-Reply-To: References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> <53EB743E.8050809@oracle.com> Message-ID: <53EC6D39.1000701@oracle.com> On 14/08/2014 01:34, Wang Weijun wrote: > Yes, I see a lot of places using > > if (loadProviderFromProperty()) > return provider; > if (loadProviderAsService()) > return provider; > > The 1st using Class.forName() and 2nd ServiceLoader.load(). > > I was thinking that the 1st method will not work because Class.forName() on an internal class in another module will not work after module, but now I believe the 2nd method would not work also. Is that right? It would be a bug if ServiceLoader didn't work with modules. > Or writing the class name in a services file automatically exports it as a service? > > Now my preferred order will be > > if (loadProviderFromProperty()) > return provider; > if (loadProviderAsInstalledService()) > return provider; > if (loadProviderAsService()) > return provider; > Looking at JDK-8038089 again then I'm not sure why loadProviderFromProperty is here. If you are limiting this to just implementations of the Kerberos cipher suites and you only want to use service providers that are in the JDK image then ServiceLoader.loadInstalled should be sufficient. -Alan From weijun.wang at oracle.com Thu Aug 14 08:29:54 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 14 Aug 2014 16:29:54 +0800 Subject: Trusted service? In-Reply-To: <53EC6D39.1000701@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com> <53EB743E.8050809@oracle.com> <53EC6D39.1000701@oracle.com> Message-ID: On Aug 14, 2014, at 16:03, Alan Bateman wrote: > >> Or writing the class name in a services file automatically exports it as a service? >> >> Now my preferred order will be >> >> if (loadProviderFromProperty()) >> return provider; >> if (loadProviderAsInstalledService()) >> return provider; >> if (loadProviderAsService()) >> return provider; >> > Looking at JDK-8038089 again then I'm not sure why loadProviderFromProperty is here. If you are limiting this to just implementations of the Kerberos cipher suites and you only want to use service providers that are in the JDK image then ServiceLoader.loadInstalled should be sufficient. That's just a general preferred order. Here I define no property and do not expect an application providing an impl so yes loadProviderAsInstalledService is enough. --Max > > -Alan From xuelei.fan at oracle.com Thu Aug 14 14:49:17 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Thu, 14 Aug 2014 22:49:17 +0800 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required In-Reply-To: <53EB7516.5020609@oracle.com> References: <53EA2DE5.9060507@oracle.com> <53EAC30E.9050402@oracle.com> <53EB7516.5020609@oracle.com> Message-ID: <53ECCC6D.8040904@oracle.com> On 8/13/2014 10:24 PM, Sean Mullan wrote: >> 656 * is thrown if the caller does not have the proper permissions. >> Do we want to point out the actual modify permissions? > > This is pointed out in the following paragraph: > > *

    While iterating through the {@code Set}, > * a {@code SecurityException} is thrown > * if the caller does not have a {@link PrivateCredentialPermission} > * to access a particular Credential. The {@code Iterator} > * is nevertheless advanced to the next element in the {@code Set}. I meant to pointed out the modification permissions as well. As update to the returned value needs the related permissions as the following line talked about: 149 *

    To modify the Principals Set, the caller must have 150 * {@code AuthPermission("modifyPrincipals")}. 151 * To modify the public credential Set, the caller must have 152 * {@code AuthPermission("modifyPublicCredentials")}. 153 * To modify the private credential Set, the caller must have 154 * {@code AuthPermission("modifyPrivateCredentials")}. Otherwise, looks fine to me. Xuelei From sean.mullan at oracle.com Thu Aug 14 17:31:28 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Thu, 14 Aug 2014 13:31:28 -0400 Subject: JEP Review Request: Improve Security Manager Performance Message-ID: <53ECF270.2000205@oracle.com> Hello all, I have submitted a JEP for "Improve Security Manager Performance" that I am seeking further review and feedback: https://bugs.openjdk.java.net/browse/JDK-8043631 This is very similar to a draft I posted earlier [1], but has been re-drafted using the JEP 2.0 process. The JEP is intentionally short on details as it is more of an exploratory JEP at this point and will be updated as potential improvements are prototyped and measured. I want to thank everyone that has provided valuable feedback and ideas so far, especially Peter Firmstone and David M. Lloyd. Please continue to send any more data or ideas you have, no matter how small or trivial you think they may be. This is a great opportunity to gather and share knowledge about this area from the community. Thanks, Sean [1] http://mail.openjdk.java.net/pipermail/security-dev/2014-April/010432.html From otaviojava at java.net Fri Aug 15 09:41:43 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Fri, 15 Aug 2014 06:41:43 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> Message-ID: Could anyone help me as sponsor, please? On Tue, Aug 12, 2014 at 8:01 PM, Ot?vio Gon?alves de Santana < otaviojava at java.net> wrote: > Thank you Roger. > Done > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_6.zip > > > On Tue, Aug 12, 2014 at 10:15 AM, roger riggs > wrote: > >> fyi, >> >> There's a Perl script normalizer.pl that detects/fixes most of the >> simple tab/white space issues. >> The script is in the /make/scripts/normalizer.pl >> >> Roger >> >> >> On 8/12/2014 3:48 AM, Andrej Golovnin wrote: >> >>> Hi Ot?vio, >>> >>> I think you should fix the indentation in a lot of classes. You use the >>> tab-character for the indentation. As far as I know we should use the >>> space >>> character for the indentation in the JDK sources (Oracle devs feel free >>> to >>> correct me if I'm wrong. And it would be really nice if the style guide >>> for >>> the source code would be a part of the JDK repository. So we don't need >>> to >>> search for it on the internet/wiki. Just clone the repository, read the >>> style guide and follow it. :-) ). Here is the not complete list of >>> classes >>> where you used the tab-character for the indentation: >>> >>> src/share/classes/com/sun/crypto/provider/OAEPParameters.java >>> src/share/classes/java/lang/management/MemoryUsage.java >>> src/share/classes/java/security/KeyStore.java >>> src/share/classes/java/security/PermissionCollection.java >>> src/share/classes/java/security/ProtectionDomain.java >>> src/share/classes/java/security/cert/CertPath.java >>> src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java >>> src/share/classes/java/security/cert/PKIXParameters.java >>> src/share/classes/java/security/cert/PolicyQualifierInfo.java >>> src/share/classes/java/security/cert/TrustAnchor.java >>> src/share/classes/java/security/cert/X509CertSelector.java >>> src/share/classes/javax/crypto/CryptoPermission.java >>> src/share/classes/javax/management/relation/Role.java >>> >>> >>> In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a >>> dot >>> is missed before append: >>> >>> 423 {jjtn000.name.append( '.')append(t.image); } >>> >>> Best regards, >>> Andrej Golovnin >>> >> >> > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: *http://about.me/otaviojava * > 55 (11) 98255-3513 > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.mullan at oracle.com Fri Aug 15 18:52:20 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Fri, 15 Aug 2014 14:52:20 -0400 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required In-Reply-To: <53ECCC6D.8040904@oracle.com> References: <53EA2DE5.9060507@oracle.com> <53EAC30E.9050402@oracle.com> <53EB7516.5020609@oracle.com> <53ECCC6D.8040904@oracle.com> Message-ID: <53EE56E4.1020900@oracle.com> On 08/14/2014 10:49 AM, Xuelei Fan wrote: > I meant to pointed out the modification permissions as well. As update > to the returned value needs the related permissions as the following > line talked about: > > 149 *

    To modify the Principals Set, the caller must have > 150 * {@code AuthPermission("modifyPrincipals")}. > 151 * To modify the public credential Set, the caller must have > 152 * {@code AuthPermission("modifyPublicCredentials")}. > 153 * To modify the private credential Set, the caller must have > 154 * {@code AuthPermission("modifyPrivateCredentials")}. Yes, I understand the comment now. I have fixed it, but I had to adjust the wording a bit. getPrivateCredentials() now says: *

    If a security manager is installed, the caller must have a * {@link AuthPermission#AuthPermission(String) * AuthPermission("modifyPrivateCredentials")} permission to modify * the returned set, or a {@code SecurityException} will be thrown. * *

    While iterating through the {@code Set}, * a {@code SecurityException} is thrown if a security manager is installed * and the caller does not have a {@link PrivateCredentialPermission} * to access a particular Credential. The {@code Iterator} * is nevertheless advanced to the next element in the {@code Set}. I also added a similar paragraph as the first above to the getPublicCredentials() and getPrincipals() methods. Updated webrev: http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.02/ --Sean From xuelei.fan at oracle.com Sat Aug 16 01:57:41 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Sat, 16 Aug 2014 09:57:41 +0800 Subject: Review Request for 7026255 : Methods of Subject that throw SecurityException do not specify what permissions are required In-Reply-To: <53EE56E4.1020900@oracle.com> References: <53EA2DE5.9060507@oracle.com> <53EAC30E.9050402@oracle.com> <53EB7516.5020609@oracle.com> <53ECCC6D.8040904@oracle.com> <53EE56E4.1020900@oracle.com> Message-ID: <53EEBA95.3010202@oracle.com> Looks fine to me. Thanks, Xuelei On 8/16/2014 2:52 AM, Sean Mullan wrote: > On 08/14/2014 10:49 AM, Xuelei Fan wrote: >> I meant to pointed out the modification permissions as well. As update >> to the returned value needs the related permissions as the following >> line talked about: >> >> 149 *

    To modify the Principals Set, the caller must have >> 150 * {@code AuthPermission("modifyPrincipals")}. >> 151 * To modify the public credential Set, the caller must have >> 152 * {@code AuthPermission("modifyPublicCredentials")}. >> 153 * To modify the private credential Set, the caller must have >> 154 * {@code AuthPermission("modifyPrivateCredentials")}. > > Yes, I understand the comment now. I have fixed it, but I had to adjust > the wording a bit. getPrivateCredentials() now says: > > *

    If a security manager is installed, the caller must have a > * {@link AuthPermission#AuthPermission(String) > * AuthPermission("modifyPrivateCredentials")} permission to modify > * the returned set, or a {@code SecurityException} will be thrown. > * > *

    While iterating through the {@code Set}, > * a {@code SecurityException} is thrown if a security manager is > installed > * and the caller does not have a {@link PrivateCredentialPermission} > * to access a particular Credential. The {@code Iterator} > * is nevertheless advanced to the next element in the {@code Set}. > > I also added a similar paragraph as the first above to the > getPublicCredentials() and getPrincipals() methods. > > Updated webrev: > http://cr.openjdk.java.net/~mullan/webrevs/7026255/webrev.02/ > > --Sean From zaiyao.liu at oracle.com Mon Aug 18 06:35:44 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Mon, 18 Aug 2014 14:35:44 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53DB0509.3000109@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> Message-ID: <53F19EC0.8050401@oracle.com> Hi Brad, Can you help to review this new test for DigestIOStream? Thanks Kevin ? 2014/8/1 11:10, zaiyao liu ??: > May I request you to review 1 new test to be added for messageDigest with DigestIOStream. New test are added to address following: > - Test DigestInputStream and DigestOutputStream digest function when > digest set on and off > - Test DigestInputStream and DigestOutputStream digest function when > Swap the message digest engines between DigestIn/OutputStream > - Test DigestInputStream and DigestOutputStream digest function when > use same message digest object. > > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050370 > Webrev: http://cr.openjdk.java.net/~rhalade/8050370/webrev.00/ > > Thanks, > > Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Mon Aug 18 08:43:17 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 18 Aug 2014 16:43:17 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F19EC0.8050401@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> Message-ID: <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> Hi Kevin I tried to read the new test. TestMDChange and TestMDShare are OK, but I am confused on what testDigestOnOff is doing. Can you add some comments there? Thanks Max On Aug 18, 2014, at 14:35, zaiyao liu wrote: > Hi Brad, > > Can you help to review this new test for DigestIOStream? > > Thanks > > Kevin > ? 2014/8/1 11:10, zaiyao liu ??: >> May I request you to review 1 new test to be added for messageDigest with DigestIOStream. New test are added to address following: >> - Test DigestInputStream and DigestOutputStream digest function when digest set on and off >> - Test DigestInputStream and DigestOutputStream digest function when Swap the message digest engines between DigestIn/OutputStream >> - Test DigestInputStream and DigestOutputStream digest function when use same message digest object. >> >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050370 >> Webrev: http://cr.openjdk.java.net/~rhalade/8050370/webrev.00/ >> >> Thanks, >> >> Kevin > From fweimer at redhat.com Mon Aug 18 12:32:50 2014 From: fweimer at redhat.com (Florian Weimer) Date: Mon, 18 Aug 2014 14:32:50 +0200 Subject: com.sun.crypto.provider.GHASH performance fix Message-ID: <53F1F272.3030705@redhat.com> This change addresses a severe performance regression, first introduced in JDK 8, triggered by the negotiation of a GCM cipher suite in the TLS implementation. This regression is a result of the poor performance of the implementation of the GHASH function. I first tried to eliminate just the allocations in blockMult while still retaining the byte arrays. This did not substantially increase performance in my micro-benchmark. I then replaced the 16-byte arrays with longs, replaced the inner loops with direct bit fiddling on the longs, eliminated data-dependent conditionals (which are generally frowned upon in cryptographic algorithms due to the risk of timing attacks), and split the main loop in two, one for each half of the hash state. This is the result: Performance is roughly ten times faster. My test download over HTTPS is no longer CPU-bound, and GHASH hardly shows up in profiles anymore. (That's why I didn't consider further changes, lookup tables in particular.) Micro-benchmarking shows roughly a ten-fold increase in throughput, but this is probably underestimating it because of the high allocation rate of the old code. The performance improvement on 32-bit architectures is probably a bit less, but I suspect that using four ints instead of two longs would penalize 64-bit architectures. -- Florian Weimer / Red Hat Product Security From sean.mullan at oracle.com Mon Aug 18 13:09:32 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 18 Aug 2014 09:09:32 -0400 Subject: RFR 8048052: Permission tests for "setFactory" In-Reply-To: <53D61228.5030307@oracle.com> References: <53D61087.6030008@oracle.com> <53D61228.5030307@oracle.com> Message-ID: <53F1FB0C.6010109@oracle.com> On 07/28/2014 05:04 AM, FELIX YANG wrote: > Please review a new test to "setFactory" permission. It is to address > that "setFactory" permission is required or not as expected in a series > of classes/methods under java.net. > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048052 > Webrev: http://cr.openjdk.java.net/~rhalade/8048052/webrev.00/ 1. Typo on line 30: -Djava.security.manger should be: -Djava.security.manager However, setting of the java.security.manager on the command line with jtreg is discouraged. I would instead replace this with a /policy option and a policy file that grants no permissions. 2. On line 80: 80 } catch (AccessControlException e) { The APIs are defined to throw SecurityException, so even though this works with the SecurityManager, the test should catch SecurityException instead. --Sean From weijun.wang at oracle.com Mon Aug 18 14:17:13 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 18 Aug 2014 22:17:13 +0800 Subject: RFR 8048052: Permission tests for "setFactory" In-Reply-To: <53D61228.5030307@oracle.com> References: <53D61087.6030008@oracle.com> <53D61228.5030307@oracle.com> Message-ID: We don't write "@bug JDK-8048052". Should be "@bug 8048052". --Max On Jul 28, 2014, at 17:04, FELIX YANG wrote: > Please review a new test to "setFactory" permission. It is to address that "setFactory" permission is required or not as expected in a series of classes/methods under java.net. > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048052 > Webrev: http://cr.openjdk.java.net/~rhalade/8048052/webrev.00/ > > Thanks > -Felix > > > From fweimer at redhat.com Mon Aug 18 15:07:04 2014 From: fweimer at redhat.com (Florian Weimer) Date: Mon, 18 Aug 2014 17:07:04 +0200 Subject: AES GCM slow In-Reply-To: <20140127164647.AD74D64D2@mail.openjdk.java.net> References: <52E6283A.7000401@oracle.com> <52E66AE5.5050303@oracle.com> <20140127164647.AD74D64D2@mail.openjdk.java.net> Message-ID: <53F21698.3090903@redhat.com> On 01/27/2014 05:46 PM, Michael StJohns wrote: > GCM uses a GF2 multiply as part of the integrity calculation. That > operation is pretty expensive. My guess is that if the code was > profiled, you'd find a lot of time being spent in > com.sun.crypto.provider.GHASH. I ran into this and posted a fix: The AES-GCM implementation still conses a lot in unrelated parts of the code, but that's a separate fix. -- Florian Weimer / Red Hat Product Security From sean.mullan at oracle.com Mon Aug 18 18:04:28 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 18 Aug 2014 14:04:28 -0400 Subject: RFR 8054817: File ccache only recognizes Linux and Solaris defaults In-Reply-To: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> References: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> Message-ID: <53F2402C.90501@oracle.com> Looks fine to me. Do you still need to import java.lang.reflect.* though? --Sean On 08/11/2014 10:14 AM, Wang Weijun wrote: > Please review the fix at > > http://cr.openjdk.java.net/~weijun/8054817/webrev.00 > > since we have a new getuid() now for all Unix systems. > > It does return -1 on Windows, but I keep the osname.startsWith("Windows") check to be exactly consistent with the current behavior. getuid() might return something not -1 one day on Windows. > > Thanks > Max > From simone.bordet at gmail.com Mon Aug 18 20:06:58 2014 From: simone.bordet at gmail.com (Simone Bordet) Date: Mon, 18 Aug 2014 22:06:58 +0200 Subject: TLS extensions API, ALPN and HTTP 2.0 Message-ID: Hi, I was suggested to restart the discussion about the topic on this list. I would like to reboot a discussion around an improved TLS extensions API in order to support ALPN (see http://tools.ietf.org/html/rfc7301), which is the mechanism required by HTTP 2.0 to negotiate the new version of the HTTP protocol. I sent a previous message hoping that such work would have been included in JDK 8, but it was too late, see http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-March/002197.html. I think this needs to be addressed so that a future version of the Servlet specification can be implemented without requiring the hacks described below. Under the Jetty project, we have implemented ALPN as a set of patches to OpenJDK classes, producing a jar that must be prepended to the boot classpath in order for ALPN to work, see https://www.eclipse.org/jetty/documentation/current/alpn-chapter.html. The downside of this is that for every JDK release the ALPN jar may need to be rebuilt incorporating JDK changes. The patches are available at https://github.com/jetty-project/jetty-alpn, while the API provided to applications is here: http://git.eclipse.org/c/jetty/org.eclipse.jetty.alpn.git/ While this solution works, it would be great to have a clear API in the JDK that would allow to add the required TLS extension without requiring patched classes and boot classpath jars. This would allow applications to manage easily and in one standardized way TLS extensions like SNI, ALPN or NPN, chiper suite negotation, renegotiation, etc. Most of the classes are already in the sun.ssl.* package, so the effort would be to clean them up and move them to a standard package. A) Is there any plan to add a generic TLS extensions API to JDK 9 ? B) Is there a plan, perhaps in concert with the Servlet EG, to prepare to support ALPN in order to support HTTP 2.0 ? C) What would be the process to start the effort to add a TLS extensions API to the JDK ? Start a new JEP ? Note that proprietary TLS Extentions API have been provided by other JSSE implementers such as IAIK, see http://javadoc.iaik.tugraz.at/isasilk/current/iaik/security/ssl/ExtensionList.html and its usage in http://javadoc.iaik.tugraz.at/isasilk/current/iaik/security/ssl/SSLSocket.html. We are happy to contribute to this effort, but we seek guidance from the experts in this list. Thanks ! -- Simone Bordet http://bordet.blogspot.com --- Finally, no matter how good the architecture and design are, to deliver bug-free software with optimal performance and reliability, the implementation technique must be flawless. Victoria Livschitz From anthony.scarpino at oracle.com Mon Aug 18 21:59:27 2014 From: anthony.scarpino at oracle.com (Anthony Scarpino) Date: Mon, 18 Aug 2014 14:59:27 -0700 Subject: com.sun.crypto.provider.GHASH performance fix In-Reply-To: <53F1F272.3030705@redhat.com> References: <53F1F272.3030705@redhat.com> Message-ID: <53F2773F.9050908@oracle.com> On 08/18/2014 05:32 AM, Florian Weimer wrote: > This change addresses a severe performance regression, first introduced > in JDK 8, triggered by the negotiation of a GCM cipher suite in the TLS > implementation. This regression is a result of the poor performance of > the implementation of the GHASH function. > > I first tried to eliminate just the allocations in blockMult while still > retaining the byte arrays. This did not substantially increase > performance in my micro-benchmark. I then replaced the 16-byte arrays > with longs, replaced the inner loops with direct bit fiddling on the > longs, eliminated data-dependent conditionals (which are generally > frowned upon in cryptographic algorithms due to the risk of timing > attacks), and split the main loop in two, one for each half of the hash > state. This is the result: > > > > Performance is roughly ten times faster. My test download over HTTPS is > no longer CPU-bound, and GHASH hardly shows up in profiles anymore. > (That's why I didn't consider further changes, lookup tables in > particular.) Micro-benchmarking shows roughly a ten-fold increase in > throughput, but this is probably underestimating it because of the high > allocation rate of the old code. > > The performance improvement on 32-bit architectures is probably a bit > less, but I suspect that using four ints instead of two longs would > penalize 64-bit architectures. > Interesting changes. It's going to take me some time to look over this as I have a different projects involving GHASH that would cause a conflict with the code change layout you have posted. thanks Tony From jamil.j.nimeh at oracle.com Mon Aug 18 22:33:59 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Mon, 18 Aug 2014 15:33:59 -0700 Subject: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53E93C0C.1050105@oracle.com> References: <53E93C0C.1050105@oracle.com> Message-ID: <53F27F57.4060505@oracle.com> Ping! Any takers out there? Many thanks, --Jamil On 08/11/2014 02:56 PM, Jamil Nimeh wrote: > Hello all, > > This webrev covers a fix to LoginContext so it no longer selects the > wrong method when a LoginModule method (login, logout, commit, etc.) > has been overloaded. > > Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 > Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 > > Thank you, > --Jamil From weijun.wang at oracle.com Tue Aug 19 00:26:48 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 19 Aug 2014 08:26:48 +0800 Subject: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53F27F57.4060505@oracle.com> References: <53E93C0C.1050105@oracle.com> <53F27F57.4060505@oracle.com> Message-ID: 912 return modClass.getMethod(methodName, parameters); It would be better to call LoginModule.class.getMethod(). Also, do you want to add a test case that includes a good login() method but the class not extending LoginModule? This would show our fallback still works. Thanks Max On Aug 19, 2014, at 6:33, Jamil Nimeh wrote: > Ping! Any takers out there? > > Many thanks, > --Jamil > > On 08/11/2014 02:56 PM, Jamil Nimeh wrote: >> Hello all, >> >> This webrev covers a fix to LoginContext so it no longer selects the wrong method when a LoginModule method (login, logout, commit, etc.) has been overloaded. >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 >> Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 >> >> Thank you, >> --Jamil > From fweimer at redhat.com Tue Aug 19 08:43:06 2014 From: fweimer at redhat.com (Florian Weimer) Date: Tue, 19 Aug 2014 10:43:06 +0200 Subject: com.sun.crypto.provider.GHASH performance fix In-Reply-To: <53F2773F.9050908@oracle.com> References: <53F1F272.3030705@redhat.com> <53F2773F.9050908@oracle.com> Message-ID: <53F30E1A.20204@redhat.com> On 08/18/2014 11:59 PM, Anthony Scarpino wrote: > Interesting changes. It's going to take me some time to look over this > as I have a different projects involving GHASH that would cause a > conflict with the code change layout you have posted. What kind of changes do you plan? Using intrinsics for the finite field multiplication? I'd like to work on a follow-up patch to reduce memory allocation during AES-GCM TLS transfers. Even after my GHASH changes, it seems we allocate four bytes for every byte received, which should be easy enough to avoid. -- Florian Weimer / Red Hat Product Security From weijun.wang at oracle.com Tue Aug 19 08:59:24 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 19 Aug 2014 16:59:24 +0800 Subject: RFR 8055373: Typo in InquireType.java Message-ID: <061AB3FD-804C-4F7E-B2EF-05FF65086E43@oracle.com> Please review the fix at http://cr.openjdk.java.net/~weijun/8055373/webrev.00/ Just a typo. I have no idea how I wrote that wrong class name. Thanks Max From felix.yang at oracle.com Tue Aug 19 08:59:28 2014 From: felix.yang at oracle.com (FELIX YANG) Date: Tue, 19 Aug 2014 16:59:28 +0800 Subject: RFR 8048052: Permission tests for "setFactory" In-Reply-To: References: <53D61087.6030008@oracle.com> <53D61228.5030307@oracle.com> Message-ID: <53F311F0.2000900@oracle.com> Fixed, new Webrev: http://cr.openjdk.java.net/~weijun/8048052/webrev.00/ Thanks! -Felix On 8/18/2014 10:17 PM, Wang Weijun wrote: > We don't write "@bug JDK-8048052". Should be "@bug 8048052". > > --Max > > On Jul 28, 2014, at 17:04, FELIX YANG wrote: > >> Please review a new test to "setFactory" permission. It is to address that "setFactory" permission is required or not as expected in a series of classes/methods under java.net. >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048052 >> Webrev: http://cr.openjdk.java.net/~rhalade/8048052/webrev.00/ >> >> Thanks >> -Felix >> >> >> From sean.mullan at oracle.com Tue Aug 19 11:42:52 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 19 Aug 2014 07:42:52 -0400 Subject: RFR 8055373: Typo in InquireType.java In-Reply-To: <061AB3FD-804C-4F7E-B2EF-05FF65086E43@oracle.com> References: <061AB3FD-804C-4F7E-B2EF-05FF65086E43@oracle.com> Message-ID: <53F3383C.5060702@oracle.com> Looks good. --Sean On 08/19/2014 04:59 AM, Wang Weijun wrote: > Please review the fix at > > http://cr.openjdk.java.net/~weijun/8055373/webrev.00/ > > Just a typo. I have no idea how I wrote that wrong class name. > > Thanks > Max > From zaiyao.liu at oracle.com Tue Aug 19 14:05:03 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Tue, 19 Aug 2014 22:05:03 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> Message-ID: <53F3598F.70304@oracle.com> Hi Max, Thanks for review. testDigestOnOff including following two cases. * Test digest when set digest function on: o Set the digest function on both DigestInputStream and DigestOutputStream o Perform the update for using all available/possible update methods, update action including call read() read data from DigestInputStream then write data to DigestOutputStream. o Compare generated digest values of DigestInputStream and DigestOutputStream * Test digest when turns digest function on and off: o Turns the digest function on and off, set same digest function value for DigestInputStream and DigestOutputStream in one update cycle. o Perform the update for using all available/possible update methods o Compare generated digest values of DigestInputStream and DigestOutputStream Please review the comments, if OK I will update this comments into webrev. Thanks again. Kevin ? 2014/8/18 16:43, Wang Weijun ??: > Hi Kevin > > I tried to read the new test. TestMDChange and TestMDShare are OK, but I am confused on what testDigestOnOff is doing. Can you add some comments there? > > Thanks > Max > > On Aug 18, 2014, at 14:35, zaiyao liu wrote: > >> Hi Brad, >> >> Can you help to review this new test for DigestIOStream? >> >> Thanks >> >> Kevin >> ? 2014/8/1 11:10, zaiyao liu ??: >>> May I request you to review 1 new test to be added for messageDigest with DigestIOStream. New test are added to address following: >>> - Test DigestInputStream and DigestOutputStream digest function when digest set on and off >>> - Test DigestInputStream and DigestOutputStream digest function when Swap the message digest engines between DigestIn/OutputStream >>> - Test DigestInputStream and DigestOutputStream digest function when use same message digest object. >>> >>> >>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050370 >>> Webrev: http://cr.openjdk.java.net/~rhalade/8050370/webrev.00/ >>> >>> Thanks, >>> >>> Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From vincent.x.ryan at oracle.com Tue Aug 19 14:11:45 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Tue, 19 Aug 2014 15:11:45 +0100 Subject: TLS extensions API, ALPN and HTTP 2.0 In-Reply-To: References: Message-ID: Hello Simone, Thanks for re-raising this issue. There are indeed plans to add support for ALPN in JDK 9 but they?re still at an early stage so the timing is good. We would be interested in examining your implementation to explore how it fits into the current TLS APIs. Removing the dependency on a boot class path setting is something we should address in JDK 9. Would you be interested in co-operating on defining a new public API in JDK 9 for ALPN usage in TLS? Typically, we use the SSLParameters class to support setting the proposed TLS parameters and use the SSLSession class to support getting the negotiated TLS parameters. We could easily adopt a similar model for ALPN. Finally, please confirm that you have already signed the OCA [1] Thanks. ____ [1] http://www.oracle.com/technetwork/oca-405177.pdf On 18 Aug 2014, at 21:06, Simone Bordet wrote: > Hi, > > I was suggested to restart the discussion about the topic on this list. > > I would like to reboot a discussion around an improved TLS extensions > API in order to support ALPN (see http://tools.ietf.org/html/rfc7301), which is > the mechanism required by HTTP 2.0 to negotiate the new version of the > HTTP protocol. > > I sent a previous message hoping that such work would have been > included in JDK 8, but it was too late, see > http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-March/002197.html. > > I think this needs to be addressed so that a future version of the > Servlet specification can be implemented without requiring the hacks > described below. > > Under the Jetty project, we have implemented ALPN as a set of patches > to OpenJDK classes, producing a jar that must be prepended to the boot > classpath in order for ALPN to work, see > https://www.eclipse.org/jetty/documentation/current/alpn-chapter.html. > The downside of this is that for every JDK release the ALPN jar may > need to be rebuilt incorporating JDK changes. > The patches are available at https://github.com/jetty-project/jetty-alpn, > while the API provided to applications is here: > http://git.eclipse.org/c/jetty/org.eclipse.jetty.alpn.git/ > > While this solution works, it would be great to have a clear API in > the JDK that would allow to add the required TLS extension without > requiring patched classes and boot classpath jars. > > This would allow applications to manage easily and in one standardized > way TLS extensions like SNI, ALPN or NPN, chiper suite negotation, > renegotiation, etc. > > Most of the classes are already in the sun.ssl.* package, so the effort > would be to clean them up and move them to a standard package. > > A) Is there any plan to add a generic TLS extensions API to JDK 9 ? > B) Is there a plan, perhaps in concert with the Servlet EG, to prepare > to support ALPN in order to support HTTP 2.0 ? > C) What would be the process to start the effort to add a TLS > extensions API to the JDK ? Start a new JEP ? > > Note that proprietary TLS Extentions API have been provided by other > JSSE implementers such as IAIK, see > http://javadoc.iaik.tugraz.at/isasilk/current/iaik/security/ssl/ExtensionList.html > and its usage in > http://javadoc.iaik.tugraz.at/isasilk/current/iaik/security/ssl/SSLSocket.html. > > We are happy to contribute to this effort, but we seek guidance from the > experts in this list. > > Thanks ! > > -- > Simone Bordet > http://bordet.blogspot.com > --- > Finally, no matter how good the architecture and design are, > to deliver bug-free software with optimal performance and reliability, > the implementation technique must be flawless. Victoria Livschitz From weijun.wang at oracle.com Tue Aug 19 14:29:02 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Tue, 19 Aug 2014 22:29:02 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F3598F.70304@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> Message-ID: <53F35F2E.9050806@oracle.com> I actually don't understand the details in the program. For example, what does the different ReadModels mean? In each case, what bytes are actually write into the streams? There are too many on and off and I don't know what the program is doing. Thanks Max On 08/19/2014 10:05 PM, zaiyao liu wrote: > Hi Max, > > Thanks for review. > > testDigestOnOff including following two cases. > > * Test digest when set digest function on: > o Set the digest function on both DigestInputStream and > DigestOutputStream > o Perform the update for using all available/possible update > methods, update action including call read() read data from > DigestInputStream then write data to DigestOutputStream. > o Compare generated digest values of DigestInputStream and > DigestOutputStream > * Test digest when turns digest function on and off: > o Turns the digest function on and off, set same digest function > value for DigestInputStream and DigestOutputStream in one update > cycle. > o Perform the update for using all available/possible update methods > o Compare generated digest values of DigestInputStream and > DigestOutputStream > > Please review the comments, if OK I will update this comments into webrev. > > Thanks again. > > Kevin > ? 2014/8/18 16:43, Wang Weijun ??: >> Hi Kevin >> >> I tried to read the new test. TestMDChange and TestMDShare are OK, but I am confused on what testDigestOnOff is doing. Can you add some comments there? >> >> Thanks >> Max >> >> On Aug 18, 2014, at 14:35, zaiyao liu wrote: >> >>> Hi Brad, >>> >>> Can you help to review this new test for DigestIOStream? >>> >>> Thanks >>> >>> Kevin >>> ? 2014/8/1 11:10, zaiyao liu ??: >>>> May I request you to review 1 new test to be added for messageDigest with DigestIOStream. New test are added to address following: >>>> - Test DigestInputStream and DigestOutputStream digest function when digest set on and off >>>> - Test DigestInputStream and DigestOutputStream digest function when Swap the message digest engines between DigestIn/OutputStream >>>> - Test DigestInputStream and DigestOutputStream digest function when use same message digest object. >>>> >>>> >>>> JDK Issue:https://bugs.openjdk.java.net/browse/JDK-8050370 >>>> Webrev:http://cr.openjdk.java.net/~rhalade/8050370/webrev.00/ >>>> >>>> Thanks, >>>> >>>> Kevin > From weijun.wang at oracle.com Tue Aug 19 14:42:51 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Tue, 19 Aug 2014 22:42:51 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F35F2E.9050806@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> Message-ID: <53F3626B.7080807@oracle.com> I am understanding the models now, but still don't grasp the read/write codes very well. Take the READ example: 136 boolean enDigest = false; 139 while ((k = dis.read()) != -1) { 143 dis.on(enDigest); 144 dos.write(k); 145 if (enDigest == false) { 146 baOut.write(k); 147 } 148 dos.on(enDigest); 149 enDigest = !enDigest; 152 } dis.on() is called *after* dis.read() and dos.on() *after* dos.write(). Is it possible to change the order so that I can easily see if the read/write has any effect on the digest? Thanks Max On 08/19/2014 10:29 PM, Weijun Wang wrote: > I actually don't understand the details in the program. For example, > what does the different ReadModels mean? In each case, what bytes are > actually write into the streams? There are too many on and off and I > don't know what the program is doing. > > Thanks > Max From 1983-01-06 at gmx.net Tue Aug 19 16:13:54 2014 From: 1983-01-06 at gmx.net (Michael Osipov) Date: Tue, 19 Aug 2014 18:13:54 +0200 Subject: RFR 8054817: File ccache only recognizes Linux and Solaris defaults In-Reply-To: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> References: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> Message-ID: <53F377C2.1080003@gmx.net> Am 2014-08-11 um 16:14 schrieb Wang Weijun: > Please review the fix at > > http://cr.openjdk.java.net/~weijun/8054817/webrev.00 > > since we have a new getuid() now for all Unix systems. > > It does return -1 on Windows, but I keep the > osname.startsWith("Windows") check to be exactly consistent with the > current behavior. getuid() might return something not -1 one day on > Windows. Finally, thanks! How can we initiate a backport to 7 and 8? Thanks, Michael From sean.mullan at oracle.com Tue Aug 19 17:13:13 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 19 Aug 2014 13:13:13 -0400 Subject: RFR J8050281: New permission tests for JEP 140 In-Reply-To: <53E2AB51.2000405@oracle.com> References: <53D984DA.2090908@oracle.com> <53E2AB01.4040100@oracle.com> <53E2AB51.2000405@oracle.com> Message-ID: <53F385A9.8010101@oracle.com> On 08/06/2014 06:25 PM, Amanda Jiang wrote: > Sorry, wrong webrev link, it should be: > http://cr.openjdk.java.net/~tyan/amandaj/8050281/webrev.01/ Mostly looks good, just a few comments: * NullPerms I suggest renaming this test to LimitedDoPrivilegedWithNullPerms [27-28] Suggest rewording as: "Test that NullPointerException is thrown if any element of perms parameter is null" - you should add a couple of tests with PrivilegedActionException as the first parameter (1 for doPrivileged and 1 for doPrivilegedWithCombiner). * LimitedDoPrivilegedWithThread [27] typo: s/trhead/thread/ --Sean > > Thanks, > Amanda > > On 8/6/14 3:24 PM, Amanda Jiang wrote: >> Updated the original codes for better handling interrupted exception. >> webrev: http://cr.openjdk.java.net/~tyan/amandaj/JDK-8031661/webrev.01/ >> >> Thanks, >> Amanda >> >> On 7/30/14 4:50 PM, Amanda Jiang wrote: >>> Hi All, >>> >>> Could you please review following 2 new regression tests to be added >>> for JEP140 (Limied doPrivileged). >>> New tests are added to perform permission tests for limited >>> doprivileged with multiple threads , and basic API testing. >>> >>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050281 >>> webrev: http://cr.openjdk.java.net/~rhalade/8050281/webrev.00/ >>> >>> Thanks, >>> Amanda >> > From sean.mullan at oracle.com Tue Aug 19 20:38:47 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 19 Aug 2014 16:38:47 -0400 Subject: [9] request for review: 8048512: Uninitialised memory in jdk/src/share/native/sun/security/ec/ECC_JNI.cpp In-Reply-To: References: Message-ID: <53F3B5D7.2040503@oracle.com> Looks fine to me. --Sean On 08/13/2014 11:28 AM, Vincent Ryan wrote: > Hello, > > Please review this fix to cleanup ECC native code. When returning early from two methods, some data structures > do not get initialized before use. This fix initializes those structs explicitly. > Thanks. > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8048512 > Webrev: http://cr.openjdk.java.net/~vinnie/8048512/webrev.00/ > From weijun.wang at oracle.com Wed Aug 20 01:55:39 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 20 Aug 2014 09:55:39 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> Message-ID: <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> Hi Ot?vio I see TABs in the first page of sun_security.diff, too long line in javax_security.diff. Also, it's unfortunate that you will need to rename the file names to the new style with modules. See http://cr.openjdk.java.net/~chegar/docs/portingScript.html for how to do this. I can create webrev page(s) for you on cr.openjdk.java.net. Please tell me if you want a big one or one for each diff. I see no bug id. If none, I can create one for you. Thanks Max On Aug 20, 2014, at 9:05, Ot?vio Gon?alves de Santana wrote: > Thank you Sergey. > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_7.zip > > > On Tue, Aug 19, 2014 at 12:32 PM, Sergey Bylokhov < > Sergey.Bylokhov at oracle.com> wrote: > >> Hi Ot?vio, >> The new alignment in DataLine.java/JColorChooser.java looks strange. >> Wrong change in BasicTableUI.java: >> - plainStr.deleteCharAt(plainStr.length() - >> 1).append("\n"); >> + plainStr.deleteCharAt(plainStr.length() - >> 1).append('\t'); >> >> >> On 13.08.2014 3:01, Ot?vio Gon?alves de Santana wrote: >> >>> Thank you Roger. >>> Done >>> https://dl.dropboxusercontent.com/u/16109193/open_jdk/ >>> string_builder_concat_6.zip >>> >>> >>> On Tue, Aug 12, 2014 at 10:15 AM, roger riggs >>> wrote: >>> >>> fyi, >>>> >>>> There's a Perl script normalizer.pl that detects/fixes most of the >>>> simple >>>> tab/white space issues. >>>> The script is in the /make/scripts/normalizer.pl >>>> >>>> Roger >>>> >>>> >>>> On 8/12/2014 3:48 AM, Andrej Golovnin wrote: >>>> >>>> Hi Ot?vio, >>>>> >>>>> I think you should fix the indentation in a lot of classes. You use the >>>>> tab-character for the indentation. As far as I know we should use the >>>>> space >>>>> character for the indentation in the JDK sources (Oracle devs feel free >>>>> to >>>>> correct me if I'm wrong. And it would be really nice if the style guide >>>>> for >>>>> the source code would be a part of the JDK repository. So we don't need >>>>> to >>>>> search for it on the internet/wiki. Just clone the repository, read the >>>>> style guide and follow it. :-) ). Here is the not complete list of >>>>> classes >>>>> where you used the tab-character for the indentation: >>>>> >>>>> src/share/classes/com/sun/crypto/provider/OAEPParameters.java >>>>> src/share/classes/java/lang/management/MemoryUsage.java >>>>> src/share/classes/java/security/KeyStore.java >>>>> src/share/classes/java/security/PermissionCollection.java >>>>> src/share/classes/java/security/ProtectionDomain.java >>>>> src/share/classes/java/security/cert/CertPath.java >>>>> src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java >>>>> src/share/classes/java/security/cert/PKIXParameters.java >>>>> src/share/classes/java/security/cert/PolicyQualifierInfo.java >>>>> src/share/classes/java/security/cert/TrustAnchor.java >>>>> src/share/classes/java/security/cert/X509CertSelector.java >>>>> src/share/classes/javax/crypto/CryptoPermission.java >>>>> src/share/classes/javax/management/relation/Role.java >>>>> >>>>> >>>>> In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a >>>>> dot >>>>> is missed before append: >>>>> >>>>> 423 {jjtn000.name.append( '.')append(t.image); } >>>>> >>>>> Best regards, >>>>> Andrej Golovnin >>>>> >>>>> >>>> >>> >> >> -- >> Best regards, Sergey. >> >> > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: *http://about.me/otaviojava * > 55 (11) 98255-3513 > From zaiyao.liu at oracle.com Wed Aug 20 02:35:56 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Wed, 20 Aug 2014 10:35:56 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F3626B.7080807@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> Message-ID: <53F4098C.1030403@oracle.com> Hi Max, Sorry for the confuse, how about following chang? 136 boolean enDigest = false; 139 while ((k = dis.read()) != -1) { 144 dos.write(k); 145 if (enDigest == false) { // write data into baOut when dos and dis digest function on 146 baOut.write(k); 147 } 143 dis.on(enDigest); 148 dos.on(enDigest); 149 enDigest = !enDigest; 152 } Thanks Kevin ? 2014/8/19 22:42, Weijun Wang ??: > I am understanding the models now, but still don't grasp the > read/write codes very well. Take the READ example: > > 136 boolean enDigest = false; > 139 while ((k = dis.read()) != -1) { > 143 dis.on(enDigest); > 144 dos.write(k); > 145 if (enDigest == false) { > 146 baOut.write(k); > 147 } > 148 dos.on(enDigest); > 149 enDigest = !enDigest; > 152 } > > dis.on() is called *after* dis.read() and dos.on() *after* > dos.write(). Is it possible to change the order so that I can easily > see if the read/write has any effect on the digest? > > Thanks > Max > > On 08/19/2014 10:29 PM, Weijun Wang wrote: >> I actually don't understand the details in the program. For example, >> what does the different ReadModels mean? In each case, what bytes are >> actually write into the streams? There are too many on and off and I >> don't know what the program is doing. >> >> Thanks >> Max From weijun.wang at oracle.com Wed Aug 20 02:44:31 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 20 Aug 2014 10:44:31 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F4098C.1030403@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> <53F4098C.1030403@oracle.com> Message-ID: I don't find it helpful. Each time I come back reading the codes, I think I understand it a little more. So maybe I can finally assert the correctness now. But I still think the code is not easily readable. It will be nice if you reorganize the lines. --Max On Aug 20, 2014, at 10:35, zaiyao liu wrote: > Hi Max, > > Sorry for the confuse, how about following chang? > > 136 boolean enDigest = false; > 139 while ((k = dis.read()) != -1) { > 144 dos.write(k); > 145 if (enDigest == false) { // write data into baOut when dos and dis digest function on > 146 baOut.write(k); > 147 } > 143 dis.on(enDigest); > 148 dos.on(enDigest); > 149 enDigest = !enDigest; > 152 } > > Thanks > > Kevin > ? 2014/8/19 22:42, Weijun Wang ??: >> I am understanding the models now, but still don't grasp the read/write codes very well. Take the READ example: >> >> 136 boolean enDigest = false; >> 139 while ((k = dis.read()) != -1) { >> 143 dis.on(enDigest); >> 144 dos.write(k); >> 145 if (enDigest == false) { >> 146 baOut.write(k); >> 147 } >> 148 dos.on(enDigest); >> 149 enDigest = !enDigest; >> 152 } >> >> dis.on() is called *after* dis.read() and dos.on() *after* dos.write(). Is it possible to change the order so that I can easily see if the read/write has any effect on the digest? >> >> Thanks >> Max >> >> On 08/19/2014 10:29 PM, Weijun Wang wrote: >>> I actually don't understand the details in the program. For example, >>> what does the different ReadModels mean? In each case, what bytes are >>> actually write into the streams? There are too many on and off and I >>> don't know what the program is doing. >>> >>> Thanks >>> Max > From weijun.wang at oracle.com Wed Aug 20 02:59:21 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 20 Aug 2014 10:59:21 +0800 Subject: [8u] RFR 8054817: File ccache only recognizes Linux and Solaris defaults In-Reply-To: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> References: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> Message-ID: Please review the fix for the same bug for jdk8u-dev: http://cr.openjdk.java.net/~weijun/8054817/8u/webrev.00/ We don't have sun.misc.VM.getuid() in jdk8 so the fix is even simpler. The test is identical though. Thanks Max On Aug 11, 2014, at 22:14, Wang Weijun wrote: > Please review the fix at > > http://cr.openjdk.java.net/~weijun/8054817/webrev.00 > > since we have a new getuid() now for all Unix systems. > > It does return -1 on Windows, but I keep the osname.startsWith("Windows") check to be exactly consistent with the current behavior. getuid() might return something not -1 one day on Windows. > > Thanks > Max > From simone.bordet at gmail.com Wed Aug 20 11:03:02 2014 From: simone.bordet at gmail.com (Simone Bordet) Date: Wed, 20 Aug 2014 13:03:02 +0200 Subject: TLS extensions API, ALPN and HTTP 2.0 In-Reply-To: References: Message-ID: Hi, On Tue, Aug 19, 2014 at 4:11 PM, Vincent Ryan wrote: > Hello Simone, > > Thanks for re-raising this issue. There are indeed plans to add support for ALPN in JDK 9 but they?re still at an > early stage so the timing is good. > > We would be interested in examining your implementation to explore how it fits into the current TLS APIs. > Removing the dependency on a boot class path setting is something we should address in JDK 9. > > Would you be interested in co-operating on defining a new public API in JDK 9 for ALPN usage in TLS? Yes. > Typically, we use the SSLParameters class to support setting the proposed TLS parameters and use the > SSLSession class to support getting the negotiated TLS parameters. We could easily adopt a similar model > for ALPN. I'll have a look, although ALPN is a connection property rather than a session property. > Finally, please confirm that you have already signed the OCA [1] I have not yet, it's running through legals ATM. I'll notify when this is done. Thanks ! -- Simone Bordet http://bordet.blogspot.com --- Finally, no matter how good the architecture and design are, to deliver bug-free software with optimal performance and reliability, the implementation technique must be flawless. Victoria Livschitz From sean.mullan at oracle.com Wed Aug 20 12:53:34 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 20 Aug 2014 08:53:34 -0400 Subject: [8u] RFR 8054817: File ccache only recognizes Linux and Solaris defaults In-Reply-To: References: <043B1EE1-3749-4CFB-8B95-964363B1C241@oracle.com> Message-ID: <53F49A4E.9090508@oracle.com> Looks fine to me. --Sean On 08/19/2014 10:59 PM, Wang Weijun wrote: > Please review the fix for the same bug for jdk8u-dev: > > http://cr.openjdk.java.net/~weijun/8054817/8u/webrev.00/ > > We don't have sun.misc.VM.getuid() in jdk8 so the fix is even simpler. The test is identical though. > > Thanks > Max > > On Aug 11, 2014, at 22:14, Wang Weijun wrote: > >> Please review the fix at >> >> http://cr.openjdk.java.net/~weijun/8054817/webrev.00 >> >> since we have a new getuid() now for all Unix systems. >> >> It does return -1 on Windows, but I keep the osname.startsWith("Windows") check to be exactly consistent with the current behavior. getuid() might return something not -1 one day on Windows. >> >> Thanks >> Max >> > From raghu.k.nair at oracle.com Wed Aug 20 17:10:14 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 20 Aug 2014 22:40:14 +0530 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice In-Reply-To: <53EA50B8.10901@oracle.com> References: <53DF3226.7010601@oracle.com> <53EA50B8.10901@oracle.com> Message-ID: <53F4D676.6070200@oracle.com> Hello, Please review the updated webrev : http://cr.openjdk.java.net/~tyan/raghu/8048362/webrev.04/ I have updated the path of JavaToolUtils in DoPrivAccompliceTest.java. Thanks, Raghu On 8/12/2014 11:06 PM, raghu k.nair wrote: > Hello , > The latest webrev is available at > http://cr.openjdk.java.net/~rhalade/8048362/webrev.03/ > The changes > include review comments from Vinnie . > > Thanks, > Raghu > On 8/8/2014 7:21 PM, Vincent Ryan wrote: >> Code looks fine. >> I noticed a few typos: DoPrivTest.java l.26 and >> DoPrivAccompliceTest.java l.34-38 >> >> >> On 4 Aug 2014, at 08:11, raghu k.nair wrote: >> >>> Hello , >>> Please review the updated tests for doPrivilaged with accomplice. >>> Updated the test to use @compile tag rather than compiling using API. >>> >>> Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 >>> webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ >>> >>> >>> Thanks, >>> Raghu >>> > From sean.mullan at oracle.com Wed Aug 20 19:35:42 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Wed, 20 Aug 2014 15:35:42 -0400 Subject: RFR 8048052: Permission tests for "setFactory" In-Reply-To: <53F311F0.2000900@oracle.com> References: <53D61087.6030008@oracle.com> <53D61228.5030307@oracle.com> <53F311F0.2000900@oracle.com> Message-ID: <53F4F88E.1080702@oracle.com> The updated webrev looks fine. However I do have a general comment. There are other methods that require a permission to be granted in order to invoke them. It may make more sense to create a very general test that can be used to test all of these methods, or perhaps subclassed or overridden depending on what module the methods are in. I know you have created other common testlibrary functions, so maybe it can be a part of that library. Can you think about that a bit and let me know if it is practical? --Sean On 08/19/2014 04:59 AM, FELIX YANG wrote: > Fixed, new Webrev: > > http://cr.openjdk.java.net/~weijun/8048052/webrev.00/ > > Thanks! > -Felix > On 8/18/2014 10:17 PM, Wang Weijun wrote: >> We don't write "@bug JDK-8048052". Should be "@bug 8048052". >> >> --Max >> >> On Jul 28, 2014, at 17:04, FELIX YANG wrote: >> >>> Please review a new test to "setFactory" permission. It is to address >>> that "setFactory" permission is required or not as expected in a >>> series of classes/methods under java.net. >>> >>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048052 >>> Webrev: http://cr.openjdk.java.net/~rhalade/8048052/webrev.00/ >>> >>> Thanks >>> -Felix >>> >>> >>> > From jamil.j.nimeh at oracle.com Wed Aug 20 21:38:18 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Wed, 20 Aug 2014 14:38:18 -0700 Subject: [Update] Re: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53E93C0C.1050105@oracle.com> References: <53E93C0C.1050105@oracle.com> Message-ID: <53F5154A.70108@oracle.com> Hello everyone, This is an updated review that addresses comments from the original webrev. http://cr.openjdk.java.net/~ascarpino/6562449/webrev.02 Thank you, --Jamil On 08/11/2014 02:56 PM, Jamil Nimeh wrote: > Hello all, > > This webrev covers a fix to LoginContext so it no longer selects the > wrong method when a LoginModule method (login, logout, commit, etc.) > has been overloaded. > > Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 > Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 > > Thank you, > --Jamil From weijun.wang at oracle.com Thu Aug 21 01:51:23 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 21 Aug 2014 09:51:23 +0800 Subject: [Update] RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53F5154A.70108@oracle.com> References: <53E93C0C.1050105@oracle.com> <53F5154A.70108@oracle.com> Message-ID: <671AF22A-CD83-44A1-A6EF-2490DBED6A83@oracle.com> Hi Jamil Code change looks fine. Two small nits: 1. Why is "Method reqMethod;" method level? Can it be a local variable inside the loop? 2. The spec of new method 893 * ... This method will first 894 * try to match the method by both name and parameter list. We now find interface method at first. Thanks Max On Aug 21, 2014, at 5:38, Jamil Nimeh wrote: > Hello everyone, > > This is an updated review that addresses comments from the original webrev. > > http://cr.openjdk.java.net/~ascarpino/6562449/webrev.02 > > Thank you, > --Jamil > > On 08/11/2014 02:56 PM, Jamil Nimeh wrote: >> Hello all, >> >> This webrev covers a fix to LoginContext so it no longer selects the wrong method when a LoginModule method (login, logout, commit, etc.) has been overloaded. >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 >> Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 >> >> Thank you, >> --Jamil > From jamil.j.nimeh at oracle.com Thu Aug 21 04:51:35 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Wed, 20 Aug 2014 21:51:35 -0700 Subject: [Update] RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <671AF22A-CD83-44A1-A6EF-2490DBED6A83@oracle.com> References: <53E93C0C.1050105@oracle.com> <53F5154A.70108@oracle.com> <671AF22A-CD83-44A1-A6EF-2490DBED6A83@oracle.com> Message-ID: <53F57AD7.40901@oracle.com> 1. Yes, reqMethod can be brought into the for-loop. It could even be local to the try block I think. 2. Good catch on the spec. I'll fix that, too. Thanks, --Jamil On 08/20/2014 06:51 PM, Wang Weijun wrote: > Hi Jamil > > Code change looks fine. > > Two small nits: > > 1. Why is "Method reqMethod;" method level? Can it be a local variable inside the loop? > > 2. The spec of new method > > 893 * ... This method will first > 894 * try to match the method by both name and parameter list. > > We now find interface method at first. > > Thanks > Max > > On Aug 21, 2014, at 5:38, Jamil Nimeh wrote: > >> Hello everyone, >> >> This is an updated review that addresses comments from the original webrev. >> >> http://cr.openjdk.java.net/~ascarpino/6562449/webrev.02 >> >> Thank you, >> --Jamil >> >> On 08/11/2014 02:56 PM, Jamil Nimeh wrote: >>> Hello all, >>> >>> This webrev covers a fix to LoginContext so it no longer selects the wrong method when a LoginModule method (login, logout, commit, etc.) has been overloaded. >>> >>> Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 >>> Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 >>> >>> Thank you, >>> --Jamil From florian.bruckner at 3kraft.com Thu Aug 21 08:52:11 2014 From: florian.bruckner at 3kraft.com (Florian Bruckner (3kraft)) Date: Thu, 21 Aug 2014 10:52:11 +0200 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: <53E134E6.5070707@oracle.com> References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> <53DFA249.3000207@3kraft.com> <53E134E6.5070707@oracle.com> Message-ID: <53F5B33B.2040007@3kraft.com> Hi Sean, the OCA has been approved - what are the next steps? With best regards, Florian On 05.08.14 21:47, Sean Mullan wrote: > > This seems like a reasonable change to me. In order to proceed with accepting your patch, you will > first need to sign an OCA. See step 0 of http://openjdk.java.net/contribute/ > > Thanks, > Sean From vincent.x.ryan at oracle.com Thu Aug 21 09:28:26 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Thu, 21 Aug 2014 10:28:26 +0100 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: <53F5B33B.2040007@3kraft.com> References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> <53DFA249.3000207@3kraft.com> <53E134E6.5070707@oracle.com> <53F5B33B.2040007@3kraft.com> Message-ID: Hello Florian, I can sponsor this changeset and attribute the fix to you. On 21 Aug 2014, at 09:52, Florian Bruckner (3kraft) wrote: > Hi Sean, > > the OCA has been approved - what are the next steps? > > With best regards, > > Florian > > On 05.08.14 21:47, Sean Mullan wrote: >> >> This seems like a reasonable change to me. In order to proceed with accepting your patch, you will first need to sign an OCA. See step 0 of http://openjdk.java.net/contribute/ >> >> Thanks, >> Sean > From weijun.wang at oracle.com Thu Aug 21 12:53:54 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 21 Aug 2014 20:53:54 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> Message-ID: I filed a bug at https://bugs.openjdk.java.net/browse/JDK-8038277 Webrev in 3 parts at http://cr.openjdk.java.net/~weijun/8038277/client/webrev.00 http://cr.openjdk.java.net/~weijun/8038277/core/webrev.00/ http://cr.openjdk.java.net/~weijun/8038277/extra/webrev.00/ --Max On Aug 21, 2014, at 10:32, Ot?vio Gon?alves de Santana wrote: > Thank you Wang. > Actually I haven't neither webrev and bug id. > I believe is better split in client and server code. > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_8.zip > > > On Tue, Aug 19, 2014 at 10:55 PM, Wang Weijun wrote: > Hi Ot?vio > > I see TABs in the first page of sun_security.diff, too long line in javax_security.diff. > > Also, it's unfortunate that you will need to rename the file names to the new style with modules. See http://cr.openjdk.java.net/~chegar/docs/portingScript.html for how to do this. > > I can create webrev page(s) for you on cr.openjdk.java.net. Please tell me if you want a big one or one for each diff. > > I see no bug id. If none, I can create one for you. > > Thanks > Max > > On Aug 20, 2014, at 9:05, Ot?vio Gon?alves de Santana wrote: > > > Thank you Sergey. > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_7.zip > > > > > > On Tue, Aug 19, 2014 at 12:32 PM, Sergey Bylokhov < > > Sergey.Bylokhov at oracle.com> wrote: > > > >> Hi Ot?vio, > >> The new alignment in DataLine.java/JColorChooser.java looks strange. > >> Wrong change in BasicTableUI.java: > >> - plainStr.deleteCharAt(plainStr.length() - > >> 1).append("\n"); > >> + plainStr.deleteCharAt(plainStr.length() - > >> 1).append('\t'); > >> > >> > >> On 13.08.2014 3:01, Ot?vio Gon?alves de Santana wrote: > >> > >>> Thank you Roger. > >>> Done > >>> https://dl.dropboxusercontent.com/u/16109193/open_jdk/ > >>> string_builder_concat_6.zip > >>> > >>> > >>> On Tue, Aug 12, 2014 at 10:15 AM, roger riggs > >>> wrote: > >>> > >>> fyi, > >>>> > >>>> There's a Perl script normalizer.pl that detects/fixes most of the > >>>> simple > >>>> tab/white space issues. > >>>> The script is in the /make/scripts/normalizer.pl > >>>> > >>>> Roger > >>>> > >>>> > >>>> On 8/12/2014 3:48 AM, Andrej Golovnin wrote: > >>>> > >>>> Hi Ot?vio, > >>>>> > >>>>> I think you should fix the indentation in a lot of classes. You use the > >>>>> tab-character for the indentation. As far as I know we should use the > >>>>> space > >>>>> character for the indentation in the JDK sources (Oracle devs feel free > >>>>> to > >>>>> correct me if I'm wrong. And it would be really nice if the style guide > >>>>> for > >>>>> the source code would be a part of the JDK repository. So we don't need > >>>>> to > >>>>> search for it on the internet/wiki. Just clone the repository, read the > >>>>> style guide and follow it. :-) ). Here is the not complete list of > >>>>> classes > >>>>> where you used the tab-character for the indentation: > >>>>> > >>>>> src/share/classes/com/sun/crypto/provider/OAEPParameters.java > >>>>> src/share/classes/java/lang/management/MemoryUsage.java > >>>>> src/share/classes/java/security/KeyStore.java > >>>>> src/share/classes/java/security/PermissionCollection.java > >>>>> src/share/classes/java/security/ProtectionDomain.java > >>>>> src/share/classes/java/security/cert/CertPath.java > >>>>> src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java > >>>>> src/share/classes/java/security/cert/PKIXParameters.java > >>>>> src/share/classes/java/security/cert/PolicyQualifierInfo.java > >>>>> src/share/classes/java/security/cert/TrustAnchor.java > >>>>> src/share/classes/java/security/cert/X509CertSelector.java > >>>>> src/share/classes/javax/crypto/CryptoPermission.java > >>>>> src/share/classes/javax/management/relation/Role.java > >>>>> > >>>>> > >>>>> In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line 423 a > >>>>> dot > >>>>> is missed before append: > >>>>> > >>>>> 423 {jjtn000.name.append( '.')append(t.image); } > >>>>> > >>>>> Best regards, > >>>>> Andrej Golovnin > >>>>> > >>>>> > >>>> > >>> > >> > >> -- > >> Best regards, Sergey. > >> > >> > > > > > > -- > > Ot?vio Gon?alves de Santana > > > > blog: http://otaviosantana.blogspot.com.br/ > > twitter: http://twitter.com/otaviojava > > site: *http://about.me/otaviojava * > > 55 (11) 98255-3513 > > > > > > > -- > Ot?vio Gon?alves de Santana > > blog: http://otaviosantana.blogspot.com.br/ > twitter: http://twitter.com/otaviojava > site: http://about.me/otaviojava > 55 (11) 98255-3513 > From andrej.golovnin at gmail.com Thu Aug 21 13:18:19 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Thu, 21 Aug 2014 15:18:19 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> Message-ID: > > https://bugs.openjdk.java.net/browse/JDK-8038277 This is not the right bug report. The subject of this bug report is "Improve the bootstrap performance of carets keystore". > > http://cr.openjdk.java.net/~weijun/8038277/client/webrev.00 TABs are still used for indentation. I looked only at src/java.desktop/share/classes/javax/swing/RepaintManager.java. Best regards, Andrej Golovnin > > http://cr.openjdk.java.net/~weijun/8038277/core/webrev.00/ > http://cr.openjdk.java.net/~weijun/8038277/extra/webrev.00/ > > --Max > > On Aug 21, 2014, at 10:32, Ot?vio Gon?alves de Santana < > otaviojava at java.net> wrote: > > > Thank you Wang. > > Actually I haven't neither webrev and bug id. > > I believe is better split in client and server code. > > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_8.zip > > > > > > On Tue, Aug 19, 2014 at 10:55 PM, Wang Weijun > wrote: > > Hi Ot?vio > > > > I see TABs in the first page of sun_security.diff, too long line in > javax_security.diff. > > > > Also, it's unfortunate that you will need to rename the file names to > the new style with modules. See > http://cr.openjdk.java.net/~chegar/docs/portingScript.html for how to do > this. > > > > I can create webrev page(s) for you on cr.openjdk.java.net. Please tell > me if you want a big one or one for each diff. > > > > I see no bug id. If none, I can create one for you. > > > > Thanks > > Max > > > > On Aug 20, 2014, at 9:05, Ot?vio Gon?alves de Santana < > otaviojava at java.net> wrote: > > > > > Thank you Sergey. > > > > https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat_7.zip > > > > > > > > > On Tue, Aug 19, 2014 at 12:32 PM, Sergey Bylokhov < > > > Sergey.Bylokhov at oracle.com> wrote: > > > > > >> Hi Ot?vio, > > >> The new alignment in DataLine.java/JColorChooser.java looks strange. > > >> Wrong change in BasicTableUI.java: > > >> - plainStr.deleteCharAt(plainStr.length() - > > >> 1).append("\n"); > > >> + plainStr.deleteCharAt(plainStr.length() - > > >> 1).append('\t'); > > >> > > >> > > >> On 13.08.2014 3:01, Ot?vio Gon?alves de Santana wrote: > > >> > > >>> Thank you Roger. > > >>> Done > > >>> https://dl.dropboxusercontent.com/u/16109193/open_jdk/ > > >>> string_builder_concat_6.zip > > >>> > > >>> > > >>> On Tue, Aug 12, 2014 at 10:15 AM, roger riggs < > roger.riggs at oracle.com> > > >>> wrote: > > >>> > > >>> fyi, > > >>>> > > >>>> There's a Perl script normalizer.pl that detects/fixes most of the > > >>>> simple > > >>>> tab/white space issues. > > >>>> The script is in the /make/scripts/normalizer.pl > > >>>> > > >>>> Roger > > >>>> > > >>>> > > >>>> On 8/12/2014 3:48 AM, Andrej Golovnin wrote: > > >>>> > > >>>> Hi Ot?vio, > > >>>>> > > >>>>> I think you should fix the indentation in a lot of classes. You > use the > > >>>>> tab-character for the indentation. As far as I know we should use > the > > >>>>> space > > >>>>> character for the indentation in the JDK sources (Oracle devs feel > free > > >>>>> to > > >>>>> correct me if I'm wrong. And it would be really nice if the style > guide > > >>>>> for > > >>>>> the source code would be a part of the JDK repository. So we don't > need > > >>>>> to > > >>>>> search for it on the internet/wiki. Just clone the repository, > read the > > >>>>> style guide and follow it. :-) ). Here is the not complete list of > > >>>>> classes > > >>>>> where you used the tab-character for the indentation: > > >>>>> > > >>>>> src/share/classes/com/sun/crypto/provider/OAEPParameters.java > > >>>>> src/share/classes/java/lang/management/MemoryUsage.java > > >>>>> src/share/classes/java/security/KeyStore.java > > >>>>> src/share/classes/java/security/PermissionCollection.java > > >>>>> src/share/classes/java/security/ProtectionDomain.java > > >>>>> src/share/classes/java/security/cert/CertPath.java > > >>>>> src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java > > >>>>> src/share/classes/java/security/cert/PKIXParameters.java > > >>>>> src/share/classes/java/security/cert/PolicyQualifierInfo.java > > >>>>> src/share/classes/java/security/cert/TrustAnchor.java > > >>>>> src/share/classes/java/security/cert/X509CertSelector.java > > >>>>> src/share/classes/javax/crypto/CryptoPermission.java > > >>>>> src/share/classes/javax/management/relation/Role.java > > >>>>> > > >>>>> > > >>>>> In src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj in the line > 423 a > > >>>>> dot > > >>>>> is missed before append: > > >>>>> > > >>>>> 423 {jjtn000.name.append( '.')append(t.image); } > > >>>>> > > >>>>> Best regards, > > >>>>> Andrej Golovnin > > >>>>> > > >>>>> > > >>>> > > >>> > > >> > > >> -- > > >> Best regards, Sergey. > > >> > > >> > > > > > > > > > -- > > > Ot?vio Gon?alves de Santana > > > > > > blog: http://otaviosantana.blogspot.com.br/ > > > twitter: http://twitter.com/otaviojava > > > site: *http://about.me/otaviojava * > > > 55 (11) 98255-3513 > > > > > > > > > > > > > > -- > > Ot?vio Gon?alves de Santana > > > > blog: http://otaviosantana.blogspot.com.br/ > > twitter: http://twitter.com/otaviojava > > site: http://about.me/otaviojava > > 55 (11) 98255-3513 > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Thu Aug 21 14:13:59 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 21 Aug 2014 22:13:59 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> Message-ID: <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> On Aug 21, 2014, at 21:18, Andrej Golovnin wrote: > https://bugs.openjdk.java.net/browse/JDK-8038277 > > This is not the right bug report. The subject of this bug report is "Improve the bootstrap performance of carets keystore". Oh, my mistake, it should be https://bugs.openjdk.java.net/browse/JDK-8055723. Will update it in the next round of webrev. > > > http://cr.openjdk.java.net/~weijun/8038277/client/webrev.00 > > TABs are still used for indentation. I looked only at src/java.desktop/share/classes/javax/swing/RepaintManager.java. My mistake again. In order to create 3 changesets for a single bug id, I turned off jcheck. These files includes TABs: client: Warning: src/java.desktop/share/classes/javax/swing/GroupLayout.java:1242: Tab character Warning: src/java.desktop/share/classes/javax/swing/MultiUIDefaults.java:193: Tab character Warning: src/java.desktop/share/classes/javax/swing/RepaintManager.java:993: Tab character core: Warning: src/java.base/share/classes/java/security/ProtectionDomain.java:288: Tab character Warning: src/java.base/share/classes/sun/launcher/LauncherHelper.java:372: Tab character Warning: src/java.base/share/classes/sun/net/www/HeaderParser.java:224: Tab character Warning: src/java.base/share/classes/sun/security/provider/PolicyFile.java:1488: Tab character Warning: src/java.base/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java:115: Tab character extra: Warning: src/java.management/share/classes/java/lang/management/ThreadInfo.java:582: Tab character Warning: src/jdk.dev/share/classes/sun/security/tools/jarsigner/Main.java:707: Tab character Warning: src/jdk.jconsole/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java:99: Tab character Warning: src/jdk.naming.dns/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java:494: Tab character Thanks Max From weijun.wang at oracle.com Thu Aug 21 15:04:28 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 21 Aug 2014 23:04:28 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> Message-ID: <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> I also see a lot of .toString() and String.valueOf() calls. $ cat string_concat_updated.patch | perl -ne 'print if /^\+ .*append.*(String\.valueOf|\.toString\(\))/' | wc 62 210 4626 Wrapped lines not indented correctly in src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/encryption/AbstractSerializer.java src/java.base/share/classes/com/sun/crypto/provider/DHParameters.java src/java.base/share/classes/com/sun/crypto/provider/DHPublicKey.java src/java.base/share/classes/com/sun/crypto/provider/GCMParameters.java --Max From florian.bruckner at 3kraft.com Thu Aug 21 15:27:06 2014 From: florian.bruckner at 3kraft.com (Florian Bruckner (3kraft)) Date: Thu, 21 Aug 2014 17:27:06 +0200 Subject: apple.security.KeychainStore does not load private key (when called from javaws) In-Reply-To: References: <53C40783.4060204@3kraft.com> <53C4ECC8.3020909@3kraft.com> <53D75D03.4070403@3kraft.com> <0F9AD930-8C72-4BC9-A0FA-A5A5CDA850FC@oracle.com> <53DFA249.3000207@3kraft.com> <53E134E6.5070707@oracle.com> <53F5B33B.2040007@3kraft.com> Message-ID: <53F60FCA.9030603@3kraft.com> Hi Vincent, excellent - thanks for your support - what are the next steps for me to do? regards, Florian On 21.08.14 11:28, Vincent Ryan wrote: > Hello Florian, > > I can sponsor this changeset and attribute the fix to you. > > > On 21 Aug 2014, at 09:52, Florian Bruckner (3kraft) wrote: > >> Hi Sean, >> >> the OCA has been approved - what are the next steps? >> >> With best regards, >> >> Florian >> >> On 05.08.14 21:47, Sean Mullan wrote: >>> This seems like a reasonable change to me. In order to proceed with accepting your patch, you will first need to sign an OCA. See step 0 of http://openjdk.java.net/contribute/ >>> >>> Thanks, >>> Sean > From vincent.x.ryan at oracle.com Thu Aug 21 17:29:53 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Thu, 21 Aug 2014 18:29:53 +0100 Subject: [9] request for review: 8055207: keystore and truststore debug output could be much better Message-ID: Please review this trivial enhancement to JSSE to warn when TLS client authentication cannot be completed because of difficulty locating a suitable client certificate. (Keystore file paths are already displayed by JSSE, when known) This is useful to help troubleshoot configuration issues related to keystores and truststores. Thanks. Webrev: http://cr.openjdk.java.net/~vinnie/8055207/webrev.00/ Bug: https://bugs.openjdk.java.net/browse/JDK-8055207 From amanda.jiang at oracle.com Thu Aug 21 21:15:25 2014 From: amanda.jiang at oracle.com (Amanda Jiang) Date: Thu, 21 Aug 2014 14:15:25 -0700 Subject: RFR J8050281: New permission tests for JEP 140 In-Reply-To: <53F385A9.8010101@oracle.com> References: <53D984DA.2090908@oracle.com> <53E2AB01.4040100@oracle.com> <53E2AB51.2000405@oracle.com> <53F385A9.8010101@oracle.com> Message-ID: <53F6616D.6010707@oracle.com> Hi Sean, Thank you for reviewing this. I have improved codes by your suggestions. New webrev link: http://cr.openjdk.java.net/~tyan/amandaj/8050281/webrev.02/ Thanks, Amanda On 8/19/14 10:13 AM, Sean Mullan wrote: > On 08/06/2014 06:25 PM, Amanda Jiang wrote: >> Sorry, wrong webrev link, it should be: >> http://cr.openjdk.java.net/~tyan/amandaj/8050281/webrev.01/ > > Mostly looks good, just a few comments: > > * NullPerms > > I suggest renaming this test to LimitedDoPrivilegedWithNullPerms > > [27-28] Suggest rewording as: "Test that NullPointerException is > thrown if any element of perms parameter is null" > > - you should add a couple of tests with PrivilegedActionException as > the first parameter (1 for doPrivileged and 1 for > doPrivilegedWithCombiner). > > * LimitedDoPrivilegedWithThread > > [27] typo: s/trhead/thread/ > > --Sean > >> >> Thanks, >> Amanda >> >> On 8/6/14 3:24 PM, Amanda Jiang wrote: >>> Updated the original codes for better handling interrupted exception. >>> webrev: http://cr.openjdk.java.net/~tyan/amandaj/JDK-8031661/webrev.01/ >>> >>> Thanks, >>> Amanda >>> >>> On 7/30/14 4:50 PM, Amanda Jiang wrote: >>>> Hi All, >>>> >>>> Could you please review following 2 new regression tests to be added >>>> for JEP140 (Limied doPrivileged). >>>> New tests are added to perform permission tests for limited >>>> doprivileged with multiple threads , and basic API testing. >>>> >>>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8050281 >>>> webrev: http://cr.openjdk.java.net/~rhalade/8050281/webrev.00/ >>>> >>>> Thanks, >>>> Amanda >>> >> From sean.coffey at oracle.com Thu Aug 21 21:38:02 2014 From: sean.coffey at oracle.com (=?ISO-8859-1?Q?Se=E1n_Coffey?=) Date: Thu, 21 Aug 2014 22:38:02 +0100 Subject: [9] request for review: 8055207: keystore and truststore debug output could be much better In-Reply-To: References: Message-ID: <53F666BA.8080200@oracle.com> Looks good Vinnie. Thanks for handling this. One more comment from me.. I recently worked with a group who were reading the verbose security messages when trying to debug an SSL connection issue. They weren't sure if two-way SSL authentication was set up between the server and client. Could we make the debug output a bit more obvious on that end also ? I parsed the full debug logs from the connection issue above and neither "client authentication" or "clientauthentication" appears in them (even though it was in use) see line 1446 : http://cr.openjdk.java.net/~vinnie/8055207/webrev.00/src/java.base/share/classes/sun/security/ssl/HandshakeMessage.java.html > s.println("*** CertificateRequest"); To me this looks like the start of the client authentication request phase. Could we make the message more informative. Perhaps something like "*** CertificateRequest. Begin client authentication" Is that the only time such a message can be printed ? regards, Sean. On 21/08/2014 18:29, Vincent Ryan wrote: > Please review this trivial enhancement to JSSE to warn when TLS client authentication cannot be completed > because of difficulty locating a suitable client certificate. (Keystore file paths are already displayed by JSSE, when known) > > This is useful to help troubleshoot configuration issues related to keystores and truststores. > Thanks. > > > Webrev: http://cr.openjdk.java.net/~vinnie/8055207/webrev.00/ > Bug: https://bugs.openjdk.java.net/browse/JDK-8055207 From jamil.j.nimeh at oracle.com Fri Aug 22 01:12:35 2014 From: jamil.j.nimeh at oracle.com (Jamil Nimeh) Date: Thu, 21 Aug 2014 18:12:35 -0700 Subject: [Update] Re: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53F5154A.70108@oracle.com> References: <53E93C0C.1050105@oracle.com> <53F5154A.70108@oracle.com> Message-ID: <53F69903.2@oracle.com> One more update, with Max's nits addressed: http://cr.openjdk.java.net/~weijun/6562449/webrev.03 --Jamil On 08/20/2014 02:38 PM, Jamil Nimeh wrote: > Hello everyone, > > This is an updated review that addresses comments from the original > webrev. > > http://cr.openjdk.java.net/~ascarpino/6562449/webrev.02 > > Thank you, > --Jamil > > On 08/11/2014 02:56 PM, Jamil Nimeh wrote: >> Hello all, >> >> This webrev covers a fix to LoginContext so it no longer selects the >> wrong method when a LoginModule method (login, logout, commit, etc.) >> has been overloaded. >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 >> Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 >> >> Thank you, >> --Jamil > From weijun.wang at oracle.com Fri Aug 22 01:29:33 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Fri, 22 Aug 2014 09:29:33 +0800 Subject: [Update] Re: RFR 6562449: LoginContext does not all allow overloading of login method in LoginModule In-Reply-To: <53F69903.2@oracle.com> References: <53E93C0C.1050105@oracle.com> <53F5154A.70108@oracle.com> <53F69903.2@oracle.com> Message-ID: <00D616D7-FB83-4637-9511-ACC22F006DA5@oracle.com> Code change looks fine, but you will need to translate the file path to new module style. There are also 2 useless imports: import java.util.LinkedList; import java.security.AccessController; --Max On Aug 22, 2014, at 9:12, Jamil Nimeh wrote: > One more update, with Max's nits addressed: > > http://cr.openjdk.java.net/~weijun/6562449/webrev.03 > > --Jamil > > On 08/20/2014 02:38 PM, Jamil Nimeh wrote: >> Hello everyone, >> >> This is an updated review that addresses comments from the original webrev. >> >> http://cr.openjdk.java.net/~ascarpino/6562449/webrev.02 >> >> Thank you, >> --Jamil >> >> On 08/11/2014 02:56 PM, Jamil Nimeh wrote: >>> Hello all, >>> >>> This webrev covers a fix to LoginContext so it no longer selects the wrong method when a LoginModule method (login, logout, commit, etc.) has been overloaded. >>> >>> Bug: https://bugs.openjdk.java.net/browse/JDK-6562449 >>> Webrev: http://cr.openjdk.java.net/~ascarpino/6562449/webrev.01 >>> >>> Thank you, >>> --Jamil >> > From raghu.k.nair at oracle.com Fri Aug 22 07:51:29 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Fri, 22 Aug 2014 13:21:29 +0530 Subject: Review request for CR 8048832 Implement tests for domain key store Message-ID: <53F6F681.7070901@oracle.com> Hello, Please help to review the tests for Domain Keystore tests . Bug - https://bugs.openjdk.java.net/browse/JDK-8048832 webrev- http://cr.openjdk.java.net/~tyan/raghu/8048832/webrev01/ Thanks Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From zaiyao.liu at oracle.com Fri Aug 22 08:05:08 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Fri, 22 Aug 2014 16:05:08 +0800 Subject: [JDK-9] RFR: 8048607: Implement key generation tests In-Reply-To: <53DB0509.3000109@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> Message-ID: <53F6F9B4.6040206@oracle.com> May I request you to review 1 new test to be added forkey generation algorithms. New test are added to address following: - Generate a secret key using key generator for specified algorithm, retrieve its value, then verify the parity of that key. JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048607 Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048607/webrev01/ Thanks, Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Fri Aug 22 08:09:53 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Fri, 22 Aug 2014 16:09:53 +0800 Subject: Trusted service? In-Reply-To: <20140813083119.502977@eggemoggin.niobe.net> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com>, <53EB743E.8050809@oracle.com> <20140813083119.502977@eggemoggin.niobe.net> Message-ID: <9F4CFCFE-258E-416E-95CB-74F974D7300F@oracle.com> On Aug 13, 2014, at 23:31, mark.reinhold at oracle.com wrote: > 2014/8/13 7:20 -0700, alan.bateman at oracle.com: >> The usual thing is to just have a default implementation that is used >> when ServiceLoader doesn't locate a useful provider. You'll find many >> examples of this in the JDK. In those cases then the default is not >> listed in a services configuration file. From what you describe then >> this may be what you want too. >> >> ServiceLoader does not have a way to configure a preferred provider so >> this is one reason why you'll see places where a system property can be >> used to configured the preferred implementation. > > Another alternative is to use the ServiceLoader::loadInstalled method, > which will ignore providers on the application class path. Great, this works for me. But why does it need to be called in a doPrivileged() block? Isn't it only about JDK-internal classes/resources? Thanks Max > > - Mark From raghu.k.nair at oracle.com Fri Aug 22 09:28:31 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Fri, 22 Aug 2014 14:58:31 +0530 Subject: Please review CR 8049429 tests for java client server communications with various TLS/SSL combinations. Message-ID: <53F70D3F.6030703@oracle.com> Hello, Please help to review the tests for java client server communications with various TLS/SSL combinations. Bug - https://bugs.openjdk.java.net/browse/JDK-8049429 webrev-http://cr.openjdk.java.net/~tyan/raghu/8049429/webrev01/ Thanks Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From vincent.x.ryan at oracle.com Fri Aug 22 10:47:09 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Fri, 22 Aug 2014 11:47:09 +0100 Subject: [9] request for review: 8055207: keystore and truststore debug output could be much better In-Reply-To: <53F666BA.8080200@oracle.com> References: <53F666BA.8080200@oracle.com> Message-ID: <53F71FAD.7020701@oracle.com> It's probably not obvious from the log that a TLS CertificateRequest message is a request from the server for the client to supply its authentication credentials. The client can comply, by returning its certificate chain, or it can decline, by returning an empty certificate chain. Although a server has requested client authentication it may choose to continue with the handshake even if the client has declined its request. I'll add additional server-side and client-side log messages to clarify. On 21/08/2014 22:38, Se?n Coffey wrote: > Looks good Vinnie. Thanks for handling this. One more comment from me.. > I recently worked with a group who were reading the verbose security > messages when trying to debug an SSL connection issue. They weren't sure > if two-way SSL authentication was set up between the server and client. > Could we make the debug output a bit more obvious on that end also ? I > parsed the full debug logs from the connection issue above and neither > "client authentication" or "clientauthentication" appears in them (even > though it was in use) > > see line 1446 : > http://cr.openjdk.java.net/~vinnie/8055207/webrev.00/src/java.base/share/classes/sun/security/ssl/HandshakeMessage.java.html > > >> s.println("*** CertificateRequest"); > To me this looks like the start of the client authentication request > phase. Could we make the message more informative. Perhaps something > like "*** CertificateRequest. Begin client authentication" > > Is that the only time such a message can be printed ? > > regards, > Sean. > > On 21/08/2014 18:29, Vincent Ryan wrote: >> Please review this trivial enhancement to JSSE to warn when TLS client >> authentication cannot be completed >> because of difficulty locating a suitable client certificate. >> (Keystore file paths are already displayed by JSSE, when known) >> >> This is useful to help troubleshoot configuration issues related to >> keystores and truststores. >> Thanks. >> >> >> Webrev: http://cr.openjdk.java.net/~vinnie/8055207/webrev.00/ >> Bug: https://bugs.openjdk.java.net/browse/JDK-8055207 > From ivan.gerasimov at oracle.com Fri Aug 22 13:09:40 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Fri, 22 Aug 2014 17:09:40 +0400 Subject: RFR [8055731]: sun/security/smartcardio/TestDirect.java throws java.lang.IndexOutOfBoundsException Message-ID: <53F74114.7050107@oracle.com> Hello! Would you please approve a small enhancement of the manual regtest from smartcardio directory? It is suggested to change it, so it will throw a regular Exception if there are no terminals available. This would make it consistent with the other tests from the same dir. BUGURL: https://bugs.openjdk.java.net/browse/JDK-8055731 WEBREV: http://cr.openjdk.java.net/~igerasim/8055731/0/webrev/ Sincerely yours, Ivan From valerie.peng at oracle.com Fri Aug 22 20:19:05 2014 From: valerie.peng at oracle.com (Valerie Peng) Date: Fri, 22 Aug 2014 13:19:05 -0700 Subject: RFR [8055731]: sun/security/smartcardio/TestDirect.java throws java.lang.IndexOutOfBoundsException In-Reply-To: <53F74114.7050107@oracle.com> References: <53F74114.7050107@oracle.com> Message-ID: <53F7A5B9.3020208@oracle.com> Looks fine. Thanks, Valerie On 8/22/2014 6:09 AM, Ivan Gerasimov wrote: > Hello! > > Would you please approve a small enhancement of the manual regtest > from smartcardio directory? > It is suggested to change it, so it will throw a regular Exception if > there are no terminals available. > This would make it consistent with the other tests from the same dir. > > BUGURL: https://bugs.openjdk.java.net/browse/JDK-8055731 > WEBREV: http://cr.openjdk.java.net/~igerasim/8055731/0/webrev/ > > Sincerely yours, > Ivan From valerie.peng at oracle.com Fri Aug 22 20:50:21 2014 From: valerie.peng at oracle.com (Valerie Peng) Date: Fri, 22 Aug 2014 13:50:21 -0700 Subject: [9] RFR 8049312: AES/CICO test failed with on several modes In-Reply-To: <53C9A9D8.1060109@oracle.com> References: <53C9A9D8.1060109@oracle.com> Message-ID: <53F7AD0D.8050601@oracle.com> Ping again. Anyone has time to review? The webrev has been updated in place for 1) to reflect the new modular path 2) update of test/ProblemList.txt given the integration of the failed test (done in a separate bug fix which adds bunch of new tests). The main changes are in CipherCore.java to pass the correct data size when calling cipher.encrypt/decrypt(...). Also, updated the various modes implementation so that an Exception is thrown if data with incorrect length are passed. This is to make the code more robust. Thanks, Valerie On 7/18/2014 4:12 PM, Valerie Peng wrote: > > Can someone please help reviewing this following fix? > https://bugs.openjdk.java.net/browse/JDK-8049312 > Webrev: http://cr.openjdk.java.net/~valeriep/8049312/webrev.00/ > > The must-fix change is in || > src/share/classes/com/sun/crypto/provider/CipherCore.java which is to > correct the data size calculation based on "unitBytes". For example, > for CFB24, our current impl assumes the given data will be multiples > of 3 bytes. When the given data isn't multiples of 3, it will continue > but then the result is incorrect. > > To make the code more robust, I think we should explicitly check and > error out when the given data doesn't have the correct size. Thus, I > have added the input-length check to the various mode implementations. > Along the way, I also fixed javadoc typos, removed redundancies, etc. > > Thanks, > Valerie > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jason.uh at oracle.com Fri Aug 22 21:07:23 2014 From: jason.uh at oracle.com (Jason Uh) Date: Fri, 22 Aug 2014 14:07:23 -0700 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53E4915C.3080208@redhat.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> Message-ID: <53F7B10B.2080507@oracle.com> Please see the revised webrev here: http://cr.openjdk.java.net/~juh/8054380/webrev.02/ Additional changes include: 1. Verification of the DNSName during certificate parsing 2. Allowing each component to start with a letter or digit 2. A check to make sure the final character of a component ends in a digit or letter (RFC 952 grammar rules) Thanks, Jason On 08/08/2014 01:59 AM, Florian Weimer wrote: > On 08/07/2014 03:32 PM, Sean Mullan wrote: >> On 08/07/2014 08:47 AM, Florian Weimer wrote: >>> I wonder why using the HTTPS to access works with >>> the current jdk9-dev code. The name "www.3com.com" is only present in >>> the SAN. >> >> Is the SAN extension non-critical? If so, that could explain why. We >> allow X509Certificates to be created with unparseable non-critical >> extensions. > > Yes, it's marked as non-critical. But this doesn't really explain the > lack of an exception because the www.3com.com dNSName is obviously used > (there's no TLS handshake failure). > From ivan.gerasimov at oracle.com Fri Aug 22 21:07:57 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Sat, 23 Aug 2014 01:07:57 +0400 Subject: RFR [8055731]: sun/security/smartcardio/TestDirect.java throws java.lang.IndexOutOfBoundsException In-Reply-To: <53F7A5B9.3020208@oracle.com> References: <53F74114.7050107@oracle.com> <53F7A5B9.3020208@oracle.com> Message-ID: <53F7B12D.6030807@oracle.com> Thanks Valerie! On 23.08.2014 0:19, Valerie Peng wrote: > Looks fine. > Thanks, > Valerie > > On 8/22/2014 6:09 AM, Ivan Gerasimov wrote: >> Hello! >> >> Would you please approve a small enhancement of the manual regtest >> from smartcardio directory? >> It is suggested to change it, so it will throw a regular Exception if >> there are no terminals available. >> This would make it consistent with the other tests from the same dir. >> >> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8055731 >> WEBREV: http://cr.openjdk.java.net/~igerasim/8055731/0/webrev/ >> >> Sincerely yours, >> Ivan > > From weijun.wang at oracle.com Mon Aug 25 02:03:19 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 25 Aug 2014 10:03:19 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> Message-ID: <67921D59-5230-49F1-B526-5A39B75FF27F@oracle.com> New webrevs updated http://cr.openjdk.java.net/~weijun/8055723/core/webrev.00/ Includes modules java.base and security-related modules and the jarsigner tool http://cr.openjdk.java.net/~weijun/8055723/client/webrev.00 Includes the java.desktop module http://cr.openjdk.java.net/~weijun/8055723/extra/webrev.00 Includes java.corba, java.management, java.naming, java.rmi, jdk.dev, jdk.jcmd, jdk.jconsole, jdk.jdi, jdk.jvmstat, /jdk.naming.dns, jdk.runtime, jdk.snmp, and a jpda demo file Thanks Max From zaiyao.liu at oracle.com Mon Aug 25 06:41:15 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Mon, 25 Aug 2014 14:41:15 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53F4098C.1030403@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> <53F4098C.1030403@oracle.com> Message-ID: <53FADA8B.7030104@oracle.com> Hi Max, Please help review the change: http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev02/ Thanks Kevin ? 2014/8/20 10:35, zaiyao liu ??: > Hi Max, > > Sorry for the confuse, how about following chang? > > 136 boolean enDigest = false; > 139 while ((k = dis.read()) != -1) { > 144 dos.write(k); > 145 if (enDigest == false) { // write data > into baOut when dos and dis digest function on > 146 baOut.write(k); > 147 } > 143 dis.on(enDigest); > 148 dos.on(enDigest); > 149 enDigest = !enDigest; > 152 } > > Thanks > > Kevin > ? 2014/8/19 22:42, Weijun Wang ??: >> I am understanding the models now, but still don't grasp the >> read/write codes very well. Take the READ example: >> >> 136 boolean enDigest = false; >> 139 while ((k = dis.read()) != -1) { >> 143 dis.on(enDigest); >> 144 dos.write(k); >> 145 if (enDigest == false) { >> 146 baOut.write(k); >> 147 } >> 148 dos.on(enDigest); >> 149 enDigest = !enDigest; >> 152 } >> >> dis.on() is called *after* dis.read() and dos.on() *after* >> dos.write(). Is it possible to change the order so that I can easily >> see if the read/write has any effect on the digest? >> >> Thanks >> Max >> >> On 08/19/2014 10:29 PM, Weijun Wang wrote: >>> I actually don't understand the details in the program. For example, >>> what does the different ReadModels mean? In each case, what bytes are >>> actually write into the streams? There are too many on and off and I >>> don't know what the program is doing. >>> >>> Thanks >>> Max > From weijun.wang at oracle.com Mon Aug 25 06:55:30 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 25 Aug 2014 14:55:30 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53FADA8B.7030104@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> <53F4098C.1030403@oracle.com> <53FADA8B.7030104@oracle.com> Message-ID: lines 76 and 80, useless " " at the end of string. Otherwise looks fine. Thanks Max On Aug 25, 2014, at 14:41, zaiyao liu wrote: > Hi Max, > > Please help review the change: > http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev02/ > > Thanks > > Kevin > ? 2014/8/20 10:35, zaiyao liu ??: >> Hi Max, >> >> Sorry for the confuse, how about following chang? >> >> 136 boolean enDigest = false; >> 139 while ((k = dis.read()) != -1) { >> 144 dos.write(k); >> 145 if (enDigest == false) { // write data into baOut when dos and dis digest function on >> 146 baOut.write(k); >> 147 } >> 143 dis.on(enDigest); >> 148 dos.on(enDigest); >> 149 enDigest = !enDigest; >> 152 } >> >> Thanks >> >> Kevin >> ? 2014/8/19 22:42, Weijun Wang ??: >>> I am understanding the models now, but still don't grasp the read/write codes very well. Take the READ example: >>> >>> 136 boolean enDigest = false; >>> 139 while ((k = dis.read()) != -1) { >>> 143 dis.on(enDigest); >>> 144 dos.write(k); >>> 145 if (enDigest == false) { >>> 146 baOut.write(k); >>> 147 } >>> 148 dos.on(enDigest); >>> 149 enDigest = !enDigest; >>> 152 } >>> >>> dis.on() is called *after* dis.read() and dos.on() *after* dos.write(). Is it possible to change the order so that I can easily see if the read/write has any effect on the digest? >>> >>> Thanks >>> Max >>> >>> On 08/19/2014 10:29 PM, Weijun Wang wrote: >>>> I actually don't understand the details in the program. For example, >>>> what does the different ReadModels mean? In each case, what bytes are >>>> actually write into the streams? There are too many on and off and I >>>> don't know what the program is doing. >>>> >>>> Thanks >>>> Max >> > From Alan.Bateman at oracle.com Mon Aug 25 07:07:50 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 25 Aug 2014 08:07:50 +0100 Subject: Trusted service? In-Reply-To: <9F4CFCFE-258E-416E-95CB-74F974D7300F@oracle.com> References: <634B9F42-25A5-43DD-8DE7-068DB74F338A@oracle.com>, <53EB743E.8050809@oracle.com> <20140813083119.502977@eggemoggin.niobe.net> <9F4CFCFE-258E-416E-95CB-74F974D7300F@oracle.com> Message-ID: <53FAE0C6.7050802@oracle.com> On 22/08/2014 09:09, Wang Weijun wrote: > : > > Great, this works for me. > > But why does it need to be called in a doPrivileged() block? Isn't it only about JDK-internal classes/resources? > > It's a public API so it can be used by anyone. The question about privileges and limiting them is a good question. Part of the issue is that still have scanning of the extension and boot class paths, the other is that some service providers require a permission to instantiate or else do something in their initialization that requires permissions. -Alan From zaiyao.liu at oracle.com Mon Aug 25 07:18:33 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Mon, 25 Aug 2014 15:18:33 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <53F6F9B4.6040206@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> Message-ID: <53FAE349.9080704@oracle.com> Hi Xuelei, May I request you to review 1 new test to be added for PKCS12 read operations. New test are added to address following: - Implement tests for read operations with PKCS12 keystore. JDK Issue:***https://bugs.openjdk.java.net/browse/JDK-8048617* Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev01/ Thanks, Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Mon Aug 25 07:31:25 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Mon, 25 Aug 2014 15:31:25 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <53FAE349.9080704@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> Message-ID: <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> Several comments: 1. openjdk does not like binary files. I would store them in BASE64. 2. You can store a certificate in pkcs12 keystore now, so block at line 153 is not correct anymore for all pkcs12 keystores. Of course, you can keep it because all your testing pkcs12 stores should only contain key pair entries, but remember to add a comment. 3. Why now just list all files in that directory and call readTest() on each? That will save you a lot of @run lines. Or, is there an exception? Thanks Max On Aug 25, 2014, at 15:18, zaiyao liu wrote: > Hi Xuelei, > > May I request you to review 1 new test to be added for PKCS12 read operations. New test are added to address following: > - Implement tests for read operations with PKCS12 keystore. > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048617 > Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev01/ > > Thanks, > > Kevin From raghu.k.nair at oracle.com Mon Aug 25 07:59:42 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Mon, 25 Aug 2014 13:29:42 +0530 Subject: Review request for CR 8049039 Need new tests for sun.securiy.x509 classes In-Reply-To: <53E99EF2.8010900@oracle.com> References: <53E99EF2.8010900@oracle.com> Message-ID: <53FAECEE.3010007@oracle.com> Hi Vincent / Jason, Could you please help in reviewing the following test. Thanks, Raghu Nair On 8/12/2014 10:28 AM, raghu k.nair wrote: > Hello, > Please review the tests for sun.security.x509 classes. > These cover tests for GeneralName, GeneralNames, GeneralSubtree, > GeneralSubtrees, IPAddressName and IssuerAlternativeNameExtension. > > webrev: > http://cr.openjdk.java.net/~rhalade/8049039/webrev.00/ > > Bug: > https://bugs.openjdk.java.net/browse/JDK-8049039 > > Thanks, > Raghu Nair From Alan.Bateman at oracle.com Mon Aug 25 15:19:24 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 25 Aug 2014 16:19:24 +0100 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <67921D59-5230-49F1-B526-5A39B75FF27F@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! le.com> Message-ID: <53FB53FC.5040605@oracle.com> On 25/08/2014 03:03, Wang Weijun wrote: > New webrevs updated > > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.00/ > > Includes modules java.base and security-related modules and the jarsigner tool > > http://cr.openjdk.java.net/~weijun/8055723/client/webrev.00 > > Includes the java.desktop module > > http://cr.openjdk.java.net/~weijun/8055723/extra/webrev.00 Thanks for donning the sponsor hat, it's always a pain to have deal with changes that require splitting between jdk9/dev and jdk9/client. Hopefully in time that this business can be re-visited so that changes to client libraries can be pushed to jdk9/dev. For the webrev then I assume there isn't any need to split core and what you call "extra" as they will all go into jdk9/dev. I saw a few comments on tabs and maybe this is what I see but some of the indentation looks a bit odd and inconsistent in a number of places. It seems to be mostly places where method invocation chaining is used and the statement goes into a second or third line. In a few places then the .append is aligned with the start of sb.append (see DHParameters and GSMParameters for example), in other places then the second/more lines are pushed in by 8. You can probably drop src/demo/share/jpda/com/sun/tools/example/debug/gui/ContextManager.java from the list as there is a patch in review on serviceability-dev that will get this of this obsolete demo. -Alan. From amanda.jiang at oracle.com Mon Aug 25 16:48:43 2014 From: amanda.jiang at oracle.com (Amanda Jiang) Date: Mon, 25 Aug 2014 11:48:43 -0500 Subject: RFR 8047031: Need new tests to check socket permission In-Reply-To: <53D6CDDB.7020705@oracle.com> References: <53D6CDDB.7020705@oracle.com> Message-ID: <53FB68EB.5050107@oracle.com> Hi Michael, Chris and others We?re working on moving our internal security tests to open idk repo(Include refactoring effort). Could you please help to review these tests? Thanks, Amanda On 7/28/14 5:25 PM, Amanda Jiang wrote: > Hi All, > > Could you please review 1 new test to be added for SocketPermission. > New test is added to check socket permissions, for instance - > - java.net.SocketPermission with "connect", "resolve", "accept", "listen" > with Socket, DatagramSocket, MulticastSocket etc. > > JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8047031 > WebRev: http://cr.openjdk.java.net/~rhalade/8047031/webrev.00/ > > Thanks, > Amanda > > From sean.mullan at oracle.com Mon Aug 25 19:41:25 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 25 Aug 2014 15:41:25 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53F7B10B.2080507@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> <53F7B10B.2080507@oracle.com> Message-ID: <53FB9165.5070201@oracle.com> Just a couple of comments: 1. I think the check on lines 106-110 can be done prior to the for loop on line 94 2. Not specifically related to your fix, but please remove the text "NameConstraints" or "SubjectAltName" from the exception messages. DNSNames can be specified in various places in a certificate and the exception message should not try to include that. Also some message say "DNSNames" and others say "DNS names". Can you change it to "DNS names" or "DNS name" to be consistent. --Sean On 08/22/2014 05:07 PM, Jason Uh wrote: > Please see the revised webrev here: > http://cr.openjdk.java.net/~juh/8054380/webrev.02/ > > Additional changes include: > 1. Verification of the DNSName during certificate parsing > 2. Allowing each component to start with a letter or digit > 2. A check to make sure the final character of a component ends in a > digit or letter (RFC 952 grammar rules) > > Thanks, > Jason > > On 08/08/2014 01:59 AM, Florian Weimer wrote: >> On 08/07/2014 03:32 PM, Sean Mullan wrote: >>> On 08/07/2014 08:47 AM, Florian Weimer wrote: >>>> I wonder why using the HTTPS to access works >>>> with >>>> the current jdk9-dev code. The name "www.3com.com" is only present in >>>> the SAN. >>> >>> Is the SAN extension non-critical? If so, that could explain why. We >>> allow X509Certificates to be created with unparseable non-critical >>> extensions. >> >> Yes, it's marked as non-critical. But this doesn't really explain the >> lack of an exception because the www.3com.com dNSName is obviously used >> (there's no TLS handshake failure). >> From jason.uh at oracle.com Mon Aug 25 20:05:28 2014 From: jason.uh at oracle.com (Jason Uh) Date: Mon, 25 Aug 2014 16:05:28 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53FB9165.5070201@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> <53F7B10B.2080507@oracle.com> <53FB9165.5070201@oracle.com> Message-ID: <53FB9708.4010204@oracle.com> On 08/25/2014 03:41 PM, Sean Mullan wrote: > Just a couple of comments: > > 1. I think the check on lines 106-110 can be done prior to the for loop > on line 94 I think that check is actually where it should be because the for loop on line 94 loops over each component (while the inner loop on line 115 checks the characters of that component). The check for the first and last characters is done just once per component. > 2. Not specifically related to your fix, but please remove the text > "NameConstraints" or "SubjectAltName" from the exception messages. Done. > DNSNames can be specified in various places in a certificate and the > exception message should not try to include that. Also some message say > "DNSNames" and others say "DNS names". Can you change it to "DNS names" > or "DNS name" to be consistent. Done. (Everything now says "DNSNames".) Updated webrev here: http://cr.openjdk.java.net/~juh/8054380/webrev.03/ Thanks, Jason > --Sean > > > On 08/22/2014 05:07 PM, Jason Uh wrote: >> Please see the revised webrev here: >> http://cr.openjdk.java.net/~juh/8054380/webrev.02/ >> >> Additional changes include: >> 1. Verification of the DNSName during certificate parsing >> 2. Allowing each component to start with a letter or digit >> 2. A check to make sure the final character of a component ends in a >> digit or letter (RFC 952 grammar rules) >> >> Thanks, >> Jason >> >> On 08/08/2014 01:59 AM, Florian Weimer wrote: >>> On 08/07/2014 03:32 PM, Sean Mullan wrote: >>>> On 08/07/2014 08:47 AM, Florian Weimer wrote: >>>>> I wonder why using the HTTPS to access works >>>>> with >>>>> the current jdk9-dev code. The name "www.3com.com" is only present in >>>>> the SAN. >>>> >>>> Is the SAN extension non-critical? If so, that could explain why. We >>>> allow X509Certificates to be created with unparseable non-critical >>>> extensions. >>> >>> Yes, it's marked as non-critical. But this doesn't really explain the >>> lack of an exception because the www.3com.com dNSName is obviously used >>> (there's no TLS handshake failure). >>> From sean.mullan at oracle.com Mon Aug 25 20:14:45 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Mon, 25 Aug 2014 16:14:45 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53FB9708.4010204@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> <53F7B10B.2080507@oracle.com> <53FB9165.5070201@oracle.com> <53FB9708.4010204@oracle.com> Message-ID: <53FB9935.7080407@oracle.com> On 08/25/2014 04:05 PM, Jason Uh wrote: > > > On 08/25/2014 03:41 PM, Sean Mullan wrote: >> Just a couple of comments: >> >> 1. I think the check on lines 106-110 can be done prior to the for loop >> on line 94 > > I think that check is actually where it should be because the for loop > on line 94 loops over each component (while the inner loop on line 115 > checks the characters of that component). The check for the first and > last characters is done just once per component. Right, never mind. There is some extra indentation on line 95 where it isn't aligned properly - can you remove the extra spaces? --Sean From jason.uh at oracle.com Mon Aug 25 20:44:02 2014 From: jason.uh at oracle.com (Jason Uh) Date: Mon, 25 Aug 2014 16:44:02 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53FB9935.7080407@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> <53F7B10B.2080507@oracle.com> <53FB9165.5070201@oracle.com> <53FB9708.4010204@oracle.com> <53FB9935.7080407@oracle.com> Message-ID: <53FBA012.9020001@oracle.com> On 08/25/2014 04:14 PM, Sean Mullan wrote: > On 08/25/2014 04:05 PM, Jason Uh wrote: >> >> >> On 08/25/2014 03:41 PM, Sean Mullan wrote: >>> Just a couple of comments: >>> >>> 1. I think the check on lines 106-110 can be done prior to the for loop >>> on line 94 >> >> I think that check is actually where it should be because the for loop >> on line 94 loops over each component (while the inner loop on line 115 >> checks the characters of that component). The check for the first and >> last characters is done just once per component. > > Right, never mind. There is some extra indentation on line 95 where it > isn't aligned properly - can you remove the extra spaces? Thanks for catching that. Corrected here: http://cr.openjdk.java.net/~juh/8054380/webrev.04/ > --Sean From weijun.wang at oracle.com Tue Aug 26 00:58:47 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 08:58:47 +0800 Subject: RFR 8055901: Update policytool for jdk.net.NetworkPermission Message-ID: <666E7747-71CB-4D1F-9731-C24F5FA036CA@oracle.com> Hi Michael Please review the code change at http://cr.openjdk.java.net/~weijun/8055901/webrev.00/ With this change, the policy tool can generate a file like grant { permission jdk.net.NetworkPermission "setOption.SO_FLOW_SLA"; }; Please confirm the grammar is correct. BTW, I also add some missing targets in a nearby permission type. Noreg-trivial. Thanks Max From weijun.wang at oracle.com Tue Aug 26 03:28:09 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 11:28:09 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <53FB53FC.5040605@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! le.com> <53FB53FC.5040605@oracle.com> Message-ID: <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> New webrevs available at http://cr.openjdk.java.net/~weijun/8055723/client/webrev.01/ http://cr.openjdk.java.net/~weijun/8055723/core/webrev.01/ There are only 2 now. Everything non-client is in core. Everyone, please do code review quickly because the patch touches too many files and any delay could mean re-merge. *Ot?vio*: If there is only small change in feedback, tell me to update my own repo and you don't need to generate the big patch again. I see you still include that demo file. Thanks Max From mala.bankal at oracle.com Tue Aug 26 04:36:54 2014 From: mala.bankal at oracle.com (mala bankal) Date: Tue, 26 Aug 2014 10:06:54 +0530 Subject: Review Request : JDK-7197159 : accept different kvno if there no match Message-ID: <53FC0EE6.9040903@oracle.com> HI Max, Request your review for backport of bug# JDK-7197159 : accept different kvno if there no match , to 7u-dev webrev : http://cr.openjdk.java.net/~mbankal/7197159/webrev.00/ regression tests : http://nightsvr.us.oracle.com/export5/users/mbankal/7u80/testing/7197159/JTreport/html/index.html Thanks. rgds mala From xuelei.fan at oracle.com Tue Aug 26 05:20:15 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Tue, 26 Aug 2014 13:20:15 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! le.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: <53FC190F.7030204@oracle.com> I was wondering, is it nice to address it in Java compiler to use string builder for the string "+" operator? Xuelei On 8/26/2014 11:28 AM, Wang Weijun wrote: > New webrevs available at > > http://cr.openjdk.java.net/~weijun/8055723/client/webrev.01/ > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.01/ > > There are only 2 now. Everything non-client is in core. > > Everyone, please do code review quickly because the patch touches too many files and any delay could mean re-merge. > > *Ot?vio*: If there is only small change in feedback, tell me to update my own repo and you don't need to generate the big patch again. > > I see you still include that demo file. > > Thanks > Max > > From weijun.wang at oracle.com Tue Aug 26 05:22:29 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 13:22:29 +0800 Subject: Review Request : JDK-7197159 : accept different kvno if there no match In-Reply-To: <53FC0EE6.9040903@oracle.com> References: <53FC0EE6.9040903@oracle.com> Message-ID: <872DFEC3-0390-4ECE-8B5D-B2167BCB834C@oracle.com> Change looks good. Thanks Max On Aug 26, 2014, at 12:36, mala bankal wrote: > HI Max, > > Request your review for backport of bug# JDK-7197159 : accept different kvno if there no match , to 7u-dev > > webrev : > http://cr.openjdk.java.net/~mbankal/7197159/webrev.00/ > > regression tests : > http://nightsvr.us.oracle.com/export5/users/mbankal/7u80/testing/7197159/JTreport/html/index.html > > Thanks. > > rgds > mala From raghu.k.nair at oracle.com Tue Aug 26 05:47:49 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Tue, 26 Aug 2014 11:17:49 +0530 Subject: Review request for CR 8049233 Need new tests for testing openssl created certificate In-Reply-To: <53DF3483.5000106@oracle.com> References: <53D5EBC7.6020102@oracle.com> <53DF3483.5000106@oracle.com> Message-ID: <53FC1F85.7070900@oracle.com> Hi Vincent, Could you help in reviewing the following webrev. Thanks, Raghu On 8/4/2014 12:51 PM, raghu k.nair wrote: > Hello , > Please review the tests for openssl generated certificates and CRLS. > > Changes made : > CustomCertificateFactory.java is made thread safe. > Here is the new webrev - > http://cr.openjdk.java.net/~rhalade/8049233/webrev.01/ > > > Thanks, > Raghu > On 7/28/2014 11:50 AM, raghu k.nair wrote: >> Hello, >> Please review the tests for openssl generated certificates and CRLS. >> This tests java.security.cert.Certificate.verify() method and >> behaviors of the following classes java.security.X509CRL, >> java.security.X509CRLSelector, java.security.X509CRLRevocationReason >> and java.security.X509Certificate. >> >> Bug - |https://bugs.openjdk.java.net/browse/JDK-8049233| >> webrev- http://cr.openjdk.java.net/~rhalade/8049233/webrev.00/ >> >> Thanks, >> Raghu Nair >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zaiyao.liu at oracle.com Tue Aug 26 06:21:49 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Tue, 26 Aug 2014 14:21:49 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> <53F4098C.1030403@oracle.com> <53FADA8B.7030104@oracle.com> Message-ID: <53FC277D.8050903@oracle.com> Hi Max, please review again: http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev03/ Thanks Kevin ? 2014/8/25 14:55, Wang Weijun ??: > lines 76 and 80, useless " " at the end of string. > > Otherwise looks fine. > > Thanks > Max > > On Aug 25, 2014, at 14:41, zaiyao liu wrote: > >> Hi Max, >> >> Please help review the change: >> http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev02/ >> >> Thanks >> >> Kevin >> ? 2014/8/20 10:35, zaiyao liu ??: >>> Hi Max, >>> >>> Sorry for the confuse, how about following chang? >>> >>> 136 boolean enDigest = false; >>> 139 while ((k = dis.read()) != -1) { >>> 144 dos.write(k); >>> 145 if (enDigest == false) { // write data into baOut when dos and dis digest function on >>> 146 baOut.write(k); >>> 147 } >>> 143 dis.on(enDigest); >>> 148 dos.on(enDigest); >>> 149 enDigest = !enDigest; >>> 152 } >>> >>> Thanks >>> >>> Kevin >>> ? 2014/8/19 22:42, Weijun Wang ??: >>>> I am understanding the models now, but still don't grasp the read/write codes very well. Take the READ example: >>>> >>>> 136 boolean enDigest = false; >>>> 139 while ((k = dis.read()) != -1) { >>>> 143 dis.on(enDigest); >>>> 144 dos.write(k); >>>> 145 if (enDigest == false) { >>>> 146 baOut.write(k); >>>> 147 } >>>> 148 dos.on(enDigest); >>>> 149 enDigest = !enDigest; >>>> 152 } >>>> >>>> dis.on() is called *after* dis.read() and dos.on() *after* dos.write(). Is it possible to change the order so that I can easily see if the read/write has any effect on the digest? >>>> >>>> Thanks >>>> Max >>>> >>>> On 08/19/2014 10:29 PM, Weijun Wang wrote: >>>>> I actually don't understand the details in the program. For example, >>>>> what does the different ReadModels mean? In each case, what bytes are >>>>> actually write into the streams? There are too many on and off and I >>>>> don't know what the program is doing. >>>>> >>>>> Thanks >>>>> Max From weijun.wang at oracle.com Tue Aug 26 06:58:37 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 14:58:37 +0800 Subject: [JDK-9] RFR: 8050370: Need new regressions tests for messageDigest with DigestIOStream In-Reply-To: <53FC277D.8050903@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F19EC0.8050401@oracle.com> <9BC521EA-369C-4D8D-8906-AC5D260414D9@oracle.com> <53F3598F.70304@oracle.com> <53F35F2E.9050806@oracle.com> <53F3626B.7080807@oracle.com> <53F4098C.1030403@oracle.com> <53FADA8B.7030104@oracle.com> <53FC277D.8050903@oracle.com> Message-ID: <825934C0-40D6-4B7F-B669-4900F167B139@oracle.com> The change looks fine. If you want me to push it for you, please show me the full comment you want. Also, are you an openjdk author now? If yes, I can set you as author, otherwise, you name appears in "Contributed-by". --Max On Aug 26, 2014, at 14:21, zaiyao liu wrote: > Hi Max, > > please review again: > http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev03/ > > Thanks > > Kevin > ? 2014/8/25 14:55, Wang Weijun ??: >> lines 76 and 80, useless " " at the end of string. >> >> Otherwise looks fine. >> >> Thanks >> Max >> >> On Aug 25, 2014, at 14:41, zaiyao liu wrote: >> >>> Hi Max, >>> >>> Please help review the change: >>> http://cr.openjdk.java.net/~tyan/kevin/JDK-8050370/webrev02/ >>> >>> Thanks >>> >>> Kevin >>> ? 2014/8/20 10:35, zaiyao liu ??: >>>> Hi Max, >>>> >>>> Sorry for the confuse, how about following chang? >>>> >>>> 136 boolean enDigest = false; >>>> 139 while ((k = dis.read()) != -1) { >>>> 144 dos.write(k); >>>> 145 if (enDigest == false) { // write data into baOut when dos and dis digest function on >>>> 146 baOut.write(k); >>>> 147 } >>>> 143 dis.on(enDigest); >>>> 148 dos.on(enDigest); >>>> 149 enDigest = !enDigest; >>>> 152 } >>>> >>>> Thanks >>>> >>>> Kevin >>>> ? 2014/8/19 22:42, Weijun Wang ??: >>>>> I am understanding the models now, but still don't grasp the read/write codes very well. Take the READ example: >>>>> >>>>> 136 boolean enDigest = false; >>>>> 139 while ((k = dis.read()) != -1) { >>>>> 143 dis.on(enDigest); >>>>> 144 dos.write(k); >>>>> 145 if (enDigest == false) { >>>>> 146 baOut.write(k); >>>>> 147 } >>>>> 148 dos.on(enDigest); >>>>> 149 enDigest = !enDigest; >>>>> 152 } >>>>> >>>>> dis.on() is called *after* dis.read() and dos.on() *after* dos.write(). Is it possible to change the order so that I can easily see if the read/write has any effect on the digest? >>>>> >>>>> Thanks >>>>> Max >>>>> >>>>> On 08/19/2014 10:29 PM, Weijun Wang wrote: >>>>>> I actually don't understand the details in the program. For example, >>>>>> what does the different ReadModels mean? In each case, what bytes are >>>>>> actually write into the streams? There are too many on and off and I >>>>>> don't know what the program is doing. >>>>>> >>>>>> Thanks >>>>>> Max > From weijun.wang at oracle.com Tue Aug 26 07:06:23 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 15:06:23 +0800 Subject: Fwd: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations References: <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> Message-ID: <67C8C254-7FF0-4222-A8E4-11C19B9812B2@oracle.com> Vinnie I'm reviewing a test fix including a lot of binary pkcs12 files. Do you think we can directly support PEM format pkcs12 files in our own PKCS12KeyStore? Thanks Max Begin forwarded message: > Several comments: > > 1. openjdk does not like binary files. I would store them in BASE64. > >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048617 >> Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev01/ >> >> Thanks, >> >> Kevin > From michael.x.mcmahon at oracle.com Tue Aug 26 07:57:01 2014 From: michael.x.mcmahon at oracle.com (Michael McMahon) Date: Tue, 26 Aug 2014 08:57:01 +0100 Subject: RFR 8055901: Update policytool for jdk.net.NetworkPermission In-Reply-To: <666E7747-71CB-4D1F-9731-C24F5FA036CA@oracle.com> References: <666E7747-71CB-4D1F-9731-C24F5FA036CA@oracle.com> Message-ID: <53FC3DCD.1060308@oracle.com> Thanks for doing this Max. The syntax looks fine. Just one question. Do you think it is better to specify each socket option literally in the tool as you have done (ie. the only supported NetworkPermission is SO_FLOW_SLA with this change) or allow users to type in the option name as free-form text I guess you can always edit policy files manually, but if more socket options get added in future, then we will need to update the tool again. Michael On 26/08/14 01:58, Wang Weijun wrote: > Hi Michael > > Please review the code change at > > http://cr.openjdk.java.net/~weijun/8055901/webrev.00/ > > With this change, the policy tool can generate a file like > > grant { > permission jdk.net.NetworkPermission "setOption.SO_FLOW_SLA"; > }; > > Please confirm the grammar is correct. > > BTW, I also add some missing targets in a nearby permission type. > > Noreg-trivial. > > Thanks > Max > From weijun.wang at oracle.com Tue Aug 26 08:05:04 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 16:05:04 +0800 Subject: RFR 8055901: Update policytool for jdk.net.NetworkPermission In-Reply-To: <53FC3DCD.1060308@oracle.com> References: <666E7747-71CB-4D1F-9731-C24F5FA036CA@oracle.com> <53FC3DCD.1060308@oracle.com> Message-ID: <647366ED-0727-4F00-B0AC-4E47DEE87449@oracle.com> On Aug 26, 2014, at 15:57, Michael McMahon wrote: > Thanks for doing this Max. The syntax looks fine. > Just one question. Do you think it is better to specify each socket option literally in the tool > as you have done (ie. the only supported NetworkPermission > is SO_FLOW_SLA with this change) or allow users to type in the option name as free-form text Well, IMO policytool is for people who cannot remember the exact permission/target/actions names. Otherwise, it's quite easy to write a policy file using any text editor. Also, you might have noticed that even if you select one target name you can still edit it to something else. Therefore forgetting to update the tool is not fatal. --Max > I guess you can always edit policy files manually, but if more socket options get added > in future, then we will need to update the tool again. > > Michael > > On 26/08/14 01:58, Wang Weijun wrote: >> Hi Michael >> >> Please review the code change at >> >> http://cr.openjdk.java.net/~weijun/8055901/webrev.00/ >> >> With this change, the policy tool can generate a file like >> >> grant { >> permission jdk.net.NetworkPermission "setOption.SO_FLOW_SLA"; >> }; >> >> Please confirm the grammar is correct. >> >> BTW, I also add some missing targets in a nearby permission type. >> >> Noreg-trivial. >> >> Thanks >> Max >> > From michael.x.mcmahon at oracle.com Tue Aug 26 08:07:13 2014 From: michael.x.mcmahon at oracle.com (Michael McMahon) Date: Tue, 26 Aug 2014 09:07:13 +0100 Subject: RFR 8055901: Update policytool for jdk.net.NetworkPermission In-Reply-To: <647366ED-0727-4F00-B0AC-4E47DEE87449@oracle.com> References: <666E7747-71CB-4D1F-9731-C24F5FA036CA@oracle.com> <53FC3DCD.1060308@oracle.com> <647366ED-0727-4F00-B0AC-4E47DEE87449@oracle.com> Message-ID: <53FC4031.9050808@oracle.com> On 26/08/14 09:05, Wang Weijun wrote: > On Aug 26, 2014, at 15:57, Michael McMahon wrote: > >> Thanks for doing this Max. The syntax looks fine. >> Just one question. Do you think it is better to specify each socket option literally in the tool >> as you have done (ie. the only supported NetworkPermission >> is SO_FLOW_SLA with this change) or allow users to type in the option name as free-form text > Well, IMO policytool is for people who cannot remember the exact permission/target/actions names. Otherwise, it's quite easy to write a policy file using any text editor. Also, you might have noticed that even if you select one target name you can still edit it to something else. Therefore forgetting to update the tool is not fatal. Good points. That's fine then. Thanks! Michael > --Max > >> I guess you can always edit policy files manually, but if more socket options get added >> in future, then we will need to update the tool again. > >> Michael >> >> On 26/08/14 01:58, Wang Weijun wrote: >>> Hi Michael >>> >>> Please review the code change at >>> >>> http://cr.openjdk.java.net/~weijun/8055901/webrev.00/ >>> >>> With this change, the policy tool can generate a file like >>> >>> grant { >>> permission jdk.net.NetworkPermission "setOption.SO_FLOW_SLA"; >>> }; >>> >>> Please confirm the grammar is correct. >>> >>> BTW, I also add some missing targets in a nearby permission type. >>> >>> Noreg-trivial. >>> >>> Thanks >>> Max >>> From xuelei.fan at oracle.com Tue Aug 26 09:11:29 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Tue, 26 Aug 2014 17:11:29 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <14C6AB07-3499-4535-A4CE-8F1838EA0971@oracle.com> References: <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! le.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> <53FC190F.7030204@oracle.com> <14C6AB07-3499-4535-A4CE-8F1838EA0971@oracle.com> Message-ID: <53FC4F41.2000104@oracle.com> Pavel, thanks for the checking and confirm. Look back to the benchmark code: private StringBuilder createBuilder(String... values) { StringBuilder text = new StringBuilder(); text.append(values[0]).append(values[1]) .append(values[2]).append(values[3]) .append(values[4]).append(values[5]); return text; } private StringBuilder createBuilderWithConcat(String... values) { StringBuilder text = new StringBuilder(); text.append(values[0] + values[1]) .append(values[2] + values[3]) .append(values[4]+ values[5]); return text; } Comparing to createBuilder, the code similar to (values[0] + values[1]) in createBuilderWithConcat may take additional memory and CPU cycles to create new StringBuffer objects. As may be able to explain the benchmark result. Therefore, I think it might not be necessary to make this change (replacing string "+" operator with StringBuilder append()). Xuelei On 8/26/2014 4:41 PM, Pavel Rappo wrote: > It's exactly the way it's been working since 1.6 I believe. > > > > public class Optimization { > > public String concat(String... strings) { > return "#: " + strings[0] + strings[2] + strings[3] + "..."; > } > } > > > > public class Optimization { > public Optimization(); > Code: > 0: aload_0 > 1: invokespecial #1 // Method java/lang/Object."":()V > 4: return > > public java.lang.String concat(java.lang.String...); > Code: > 0: new #2 // class java/lang/StringBuilder > 3: dup > 4: invokespecial #3 // Method java/lang/StringBuilder."":()V > 7: ldc #4 // String #: > 9: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; > 12: aload_1 > 13: iconst_0 > 14: aaload > 15: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; > 18: aload_1 > 19: iconst_2 > 20: aaload > 21: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; > 24: aload_1 > 25: iconst_3 > 26: aaload > 27: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; > 30: ldc #6 // String ... > 32: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; > 35: invokevirtual #7 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; > 38: areturn > } > > -Pavel > > On 26 Aug 2014, at 06:20, Xuelei Fan wrote: > >> I was wondering, is it nice to address it in Java compiler to use string >> builder for the string "+" operator? >> >> Xuelei >> >> >> On 8/26/2014 11:28 AM, Wang Weijun wrote: >>> New webrevs available at >>> >>> http://cr.openjdk.java.net/~weijun/8055723/client/webrev.01/ >>> http://cr.openjdk.java.net/~weijun/8055723/core/webrev.01/ >>> >>> There are only 2 now. Everything non-client is in core. >>> >>> Everyone, please do code review quickly because the patch touches too many files and any delay could mean re-merge. >>> >>> *Ot?vio*: If there is only small change in feedback, tell me to update my own repo and you don't need to generate the big patch again. >>> >>> I see you still include that demo file. >>> >>> Thanks >>> Max >>> >>> >> > From vincent.x.ryan at oracle.com Tue Aug 26 10:55:37 2014 From: vincent.x.ryan at oracle.com (Vincent Ryan) Date: Tue, 26 Aug 2014 11:55:37 +0100 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <67C8C254-7FF0-4222-A8E4-11C19B9812B2@oracle.com> References: <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> <67C8C254-7FF0-4222-A8E4-11C19B9812B2@oracle.com> Message-ID: <4A3FBB05-A0DB-46B7-891C-079927A484E3@oracle.com> No. The PKCS12 KeyStore supports only the binary (DER) format. On 26 Aug 2014, at 08:06, Wang Weijun wrote: > Vinnie > > I'm reviewing a test fix including a lot of binary pkcs12 files. Do you think we can directly support PEM format pkcs12 files in our own PKCS12KeyStore? > > Thanks > Max > > Begin forwarded message: > >> Several comments: >> >> 1. openjdk does not like binary files. I would store them in BASE64. >> >>> >>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048617 >>> Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev01/ >>> >>> Thanks, >>> >>> Kevin >> > From andrej.golovnin at gmail.com Tue Aug 26 11:12:03 2014 From: andrej.golovnin at gmail.com (Andrej Golovnin) Date: Tue, 26 Aug 2014 13:12:03 +0200 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: Hi all, src/java.base/share/classes/com/sun/crypto/provider/DHPublicKey.java: 269 .append(LINE_SEP + "g:" + LINE_SEP) should be changed to: 269 .append(LINE_SEP).append( "g:").append(LINE_SEP) src/java.base/share/classes/sun/security/x509/PolicyInformation.java: 260 public String toString() { 261 StringBuilder sb = new StringBuilder(" [" + policyIdentifier.toString()); 262 sb.append(policyQualifiers).append(" ]\n"); 263 return sb.toString(); 264 } should be changed either to: 260 public String toString() { 261 StringBuilder sb = new StringBuilder(" ["); 262 sb.append(policyIdentifier); 263 sb.append(policyQualifiers).append(" ]\n"); 264 return sb.toString(); 265 } or to: 260 public String toString() { 261 return " [" + policyIdentifier + policyQualifiers + " ]\n"; 262 } src/java.base/share/classes/sun/security/x509/X509CRLEntryImpl.java: 316 sb.append("Extension unknown: " + "DER encoded OCTET string =\n") should be changed to: 316 sb.append("Extension unknown: DER encoded OCTET string =\n") same problems are in src/java.base/share/classes/sun/security/x509/X509CRLImpl.java in the line 576 src/java.base/share/classes/sun/security/x509/X509CertInfo.java in the line 332 Best regards, Andrej Golovnin -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Tue Aug 26 13:33:07 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Tue, 26 Aug 2014 21:33:07 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! ! le.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: I see no problem from the core part of the webrev. However, I am not sure how you find all the occurrences of "+" in StringBuilder, but I just run the following command in jdk/src find . -type f -name *.java -print | xargs grep -n StringBuilder | perl -ne 'print if /new StringBuilder\([^\)]*\+/' find . -type f -name *.java -print | xargs grep -n append | perl -ne 'print if /append\([^\)]*\+/' and there are still many results. Some are false alarms like buf.append(" + "); result.append(patt.charAt(i + 1)); but I still see sb.append("Extension unknown: " + "DER encoded OCTET string =\n") StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" + tagBuffer.append(""); ... Thanks Max On Aug 26, 2014, at 11:28, Wang Weijun wrote: > New webrevs available at > > http://cr.openjdk.java.net/~weijun/8055723/client/webrev.01/ > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.01/ > > There are only 2 now. Everything non-client is in core. > > Everyone, please do code review quickly because the patch touches too many files and any delay could mean re-merge. > > *Ot?vio*: If there is only small change in feedback, tell me to update my own repo and you don't need to generate the big patch again. > > I see you still include that demo file. > > Thanks > Max > > From sean.mullan at oracle.com Tue Aug 26 15:10:09 2014 From: sean.mullan at oracle.com (Sean Mullan) Date: Tue, 26 Aug 2014 11:10:09 -0400 Subject: [9] RFR: 8054380: X.509 cert extension SubjectAltName should allow digits as first character of dNSName In-Reply-To: <53FBA012.9020001@oracle.com> References: <53E274D2.2050801@oracle.com> <53E3757D.5090707@redhat.com> <53E37FEF.80506@oracle.com> <53E4915C.3080208@redhat.com> <53F7B10B.2080507@oracle.com> <53FB9165.5070201@oracle.com> <53FB9708.4010204@oracle.com> <53FB9935.7080407@oracle.com> <53FBA012.9020001@oracle.com> Message-ID: <53FCA351.50205@oracle.com> Looks good. --Sean On 08/25/2014 04:44 PM, Jason Uh wrote: > > > On 08/25/2014 04:14 PM, Sean Mullan wrote: >> On 08/25/2014 04:05 PM, Jason Uh wrote: >>> >>> >>> On 08/25/2014 03:41 PM, Sean Mullan wrote: >>>> Just a couple of comments: >>>> >>>> 1. I think the check on lines 106-110 can be done prior to the for loop >>>> on line 94 >>> >>> I think that check is actually where it should be because the for loop >>> on line 94 loops over each component (while the inner loop on line 115 >>> checks the characters of that component). The check for the first and >>> last characters is done just once per component. >> >> Right, never mind. There is some extra indentation on line 95 where it >> isn't aligned properly - can you remove the extra spaces? > > Thanks for catching that. Corrected here: > http://cr.openjdk.java.net/~juh/8054380/webrev.04/ > >> --Sean From jason.uh at oracle.com Tue Aug 26 18:07:34 2014 From: jason.uh at oracle.com (Jason Uh) Date: Tue, 26 Aug 2014 14:07:34 -0400 Subject: Review request for CR 8049039 Need new tests for sun.securiy.x509 classes In-Reply-To: <53FAECEE.3010007@oracle.com> References: <53E99EF2.8010900@oracle.com> <53FAECEE.3010007@oracle.com> Message-ID: <53FCCCE6.3080701@oracle.com> Hi Raghu, I'm not an official Reviewer, but I have some comments, mostly about X509Test.java. 1. I'm not sure if this matters, but the formatting of your copyright header is a little strange. The text appears to be correct, but the line breaks occur at non-standard places. If you look at any other file, the first couple lines would look like this: /* * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. Again, not sure how important this is, but it applies to every file in the webrev. I'd suggest changing them. 2. checkMethod(): Doesn't appear to be used anywhere. Do you want to keep this? If you do, could you add a comment to explain the parameters? Also, in general for the rest of the methods, there are a lot of parameters noted with the @param tag. If you want to leave those javadoc style comments in, could you please describe the params? 3. equals() and assertByteArray() both seem to be "assertEquals()"-style methods, but they are named a bit differently. could you make the naming consistent? For example, maybe assertEquals / assertByteArrayEquals. 4. getElementesTest() should probably read getElementsTest(). You use this method in IssuerAlternativeNameExtensionTest.java, by the way. Otherwise, I think the tests look good to me, but again, I'm not a Reviewer, so you still need an official review. Thanks, Jason On 08/25/2014 03:59 AM, raghu k.nair wrote: > Hi Vincent / Jason, > Could you please help in reviewing the following test. > > Thanks, > Raghu Nair > > On 8/12/2014 10:28 AM, raghu k.nair wrote: >> Hello, >> Please review the tests for sun.security.x509 classes. >> These cover tests for GeneralName, GeneralNames, GeneralSubtree, >> GeneralSubtrees, IPAddressName and IssuerAlternativeNameExtension. >> >> webrev: >> http://cr.openjdk.java.net/~rhalade/8049039/webrev.00/ >> >> Bug: >> https://bugs.openjdk.java.net/browse/JDK-8049039 >> >> Thanks, >> Raghu Nair > From pavel.rappo at oracle.com Tue Aug 26 08:41:25 2014 From: pavel.rappo at oracle.com (Pavel Rappo) Date: Tue, 26 Aug 2014 09:41:25 +0100 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <53FC190F.7030204@oracle.com> References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <67921D59-5230-49F1-B526-5A39B75FF27F@orac! le.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> <53FC190F.7030204@oracle.com> Message-ID: <14C6AB07-3499-4535-A4CE-8F1838EA0971@oracle.com> It's exactly the way it's been working since 1.6 I believe. public class Optimization { public String concat(String... strings) { return "#: " + strings[0] + strings[2] + strings[3] + "..."; } } public class Optimization { public Optimization(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: return public java.lang.String concat(java.lang.String...); Code: 0: new #2 // class java/lang/StringBuilder 3: dup 4: invokespecial #3 // Method java/lang/StringBuilder."":()V 7: ldc #4 // String #: 9: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 12: aload_1 13: iconst_0 14: aaload 15: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 18: aload_1 19: iconst_2 20: aaload 21: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 24: aload_1 25: iconst_3 26: aaload 27: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 30: ldc #6 // String ... 32: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 35: invokevirtual #7 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 38: areturn } -Pavel On 26 Aug 2014, at 06:20, Xuelei Fan wrote: > I was wondering, is it nice to address it in Java compiler to use string > builder for the string "+" operator? > > Xuelei > > > On 8/26/2014 11:28 AM, Wang Weijun wrote: >> New webrevs available at >> >> http://cr.openjdk.java.net/~weijun/8055723/client/webrev.01/ >> http://cr.openjdk.java.net/~weijun/8055723/core/webrev.01/ >> >> There are only 2 now. Everything non-client is in core. >> >> Everyone, please do code review quickly because the patch touches too many files and any delay could mean re-merge. >> >> *Ot?vio*: If there is only small change in feedback, tell me to update my own repo and you don't need to generate the big patch again. >> >> I see you still include that demo file. >> >> Thanks >> Max >> >> > From weijun.wang at oracle.com Wed Aug 27 02:07:56 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 10:07:56 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: Webrev updated again, this time include more changes. http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/ http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/ The change to a demo file is removed because that file itself is already removed. *Ot?vio*: I believe Andrej's following suggestion is worth looking at. Thanks Max On Aug 26, 2014, at 19:12, Andrej Golovnin wrote: > > src/java.base/share/classes/sun/security/x509/X509CRLEntryImpl.java: > 316 sb.append("Extension unknown: " + "DER encoded OCTET string =\n") > > should be changed to: > 316 sb.append("Extension unknown: DER encoded OCTET string =\n") > > same problems are in > src/java.base/share/classes/sun/security/x509/X509CRLImpl.java in the line 576 > src/java.base/share/classes/sun/security/x509/X509CertInfo.java in the line 332 > > Best regards, > Andrej Golovnin From zaiyao.liu at oracle.com Wed Aug 27 03:12:18 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Wed, 27 Aug 2014 11:12:18 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> Message-ID: <53FD4C92.8050208@oracle.com> Hi Max, Thanks for catching that, please review again: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev02/ Thanks Kevin ? 2014/8/25 15:31, Wang Weijun ??: > Several comments: > > 1. openjdk does not like binary files. I would store them in BASE64. > > 2. You can store a certificate in pkcs12 keystore now, so block at line 153 is not correct anymore for all pkcs12 keystores. Of course, you can keep it because all your testing pkcs12 stores should only contain key pair entries, but remember to add a comment. > > 3. Why now just list all files in that directory and call readTest() on each? That will save you a lot of @run lines. Or, is there an exception? > > Thanks > Max > > > On Aug 25, 2014, at 15:18, zaiyao liu wrote: > >> Hi Xuelei, >> >> May I request you to review 1 new test to be added for PKCS12 read operations. New test are added to address following: >> - Implement tests for read operations with PKCS12 keystore. >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8048617 >> Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev01/ >> >> Thanks, >> >> Kevin From weijun.wang at oracle.com Wed Aug 27 03:18:12 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 11:18:12 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <53FD4C92.8050208@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> <53FD4C92.8050208@oracle.com> Message-ID: Change looks fine. Thanks Max On Aug 27, 2014, at 11:12, zaiyao liu wrote: > Hi Max, > > Thanks for catching that, please review again: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev02/ > > Thanks From zaiyao.liu at oracle.com Wed Aug 27 03:23:05 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Wed, 27 Aug 2014 11:23:05 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> <53FD4C92.8050208@oracle.com> Message-ID: <53FD4F19.7040902@oracle.com> Hi Max, Can you help to push this code for me? Full comments: 8048617: Tests for PKCS12 read operations Reviewed-by: weijun Contributed-by: Zaiyao Liu Thanks Kevin ? 2014/8/27 11:18, Wang Weijun ??: > Change looks fine. > > Thanks > Max > > On Aug 27, 2014, at 11:12, zaiyao liu wrote: > >> Hi Max, >> >> Thanks for catching that, please review again: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048617/webrev02/ >> >> Thanks From weijun.wang at oracle.com Wed Aug 27 03:29:51 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 11:29:51 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: I found an error: diff --git a/src/jdk.dev/share/classes/com/sun/tools/hat/internal/util/Misc.java b/src/jdk.dev/share/classes/com/sun/tools/hat/internal/util/Misc.java --- a/src/jdk.dev/share/classes/com/sun/tools/hat/internal/util/Misc.java +++ b/src/jdk.dev/share/classes/com/sun/tools/hat/internal/util/Misc.java @@ -97,11 +97,11 @@ } else if (ch == '&') { sb.append("&"); } else if (ch < ' ') { - sb.append("&#" + Integer.toString(ch) + ";"); + sb.append("&#").append((int)ch).append(';'); } else { int c = (ch & 0xFFFF); if (c > 127) { - sb.append("&#" + Integer.toString(c) + ";"); + sb.append("&#").append((int)c).append(';'); } else { sb.append(ch); } In the 2nd change, it should be "append(c)" instead of "append((int)c)". Here c is already an integer and this redundant cast will be treated as an error when -Werror specified. --Max On Aug 27, 2014, at 10:07, Wang Weijun wrote: > Webrev updated again, this time include more changes. > > http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/ > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/ > > The change to a demo file is removed because that file itself is already removed. > > *Ot?vio*: I believe Andrej's following suggestion is worth looking at. > > Thanks > Max > > On Aug 26, 2014, at 19:12, Andrej Golovnin wrote: > >> >> src/java.base/share/classes/sun/security/x509/X509CRLEntryImpl.java: >> 316 sb.append("Extension unknown: " + "DER encoded OCTET string =\n") >> >> should be changed to: >> 316 sb.append("Extension unknown: DER encoded OCTET string =\n") >> >> same problems are in >> src/java.base/share/classes/sun/security/x509/X509CRLImpl.java in the line 576 >> src/java.base/share/classes/sun/security/x509/X509CertInfo.java in the line 332 >> >> Best regards, >> Andrej Golovnin > From weijun.wang at oracle.com Wed Aug 27 03:37:43 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 11:37:43 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <53FD4F19.7040902@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> <53FD4C92.8050208@oracle.com> <53FD4F19.7040902@oracle.com> Message-ID: <14037F0B-F82A-46A5-927D-4B8464BCD31D@oracle.com> Done at http://hg.openjdk.java.net/jdk9/dev/jdk/rev/785858138c56. --Max On Aug 27, 2014, at 11:23, zaiyao liu wrote: > Hi Max, > > Can you help to push this code for me? > > Full comments: > 8048617: Tests for PKCS12 read operations > Reviewed-by: weijun > Contributed-by: Zaiyao Liu > > Thanks > > Kevin From zaiyao.liu at oracle.com Wed Aug 27 03:38:17 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Wed, 27 Aug 2014 11:38:17 +0800 Subject: [JDK-9] RFR: JDK-8048617: Tests for PKCS12 read operations In-Reply-To: <14037F0B-F82A-46A5-927D-4B8464BCD31D@oracle.com> References: <53D5F8AD.2060804@oracle.com> <53DB0509.3000109@oracle.com> <53F6F9B4.6040206@oracle.com> <53FAE349.9080704@oracle.com> <1E086472-BE4F-4C37-A875-35798065C5B3@oracle.com> <53FD4C92.8050208@oracle.com> <53FD4F19.7040902@oracle.com> <14037F0B-F82A-46A5-927D-4B8464BCD31D@oracle.com> Message-ID: <53FD52A9.5040809@oracle.com> Thanks ? 2014/8/27 11:37, Wang Weijun ??: > Done at http://hg.openjdk.java.net/jdk9/dev/jdk/rev/785858138c56. > > --Max > > On Aug 27, 2014, at 11:23, zaiyao liu wrote: > >> Hi Max, >> >> Can you help to push this code for me? >> >> Full comments: >> 8048617: Tests for PKCS12 read operations >> Reviewed-by: weijun >> Contributed-by: Zaiyao Liu >> >> Thanks >> >> Kevin From raghu.k.nair at oracle.com Wed Aug 27 04:13:58 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 09:43:58 +0530 Subject: Review request for CR 8049039 Need new tests for sun.securiy.x509 classes In-Reply-To: <53FCCCE6.3080701@oracle.com> References: <53E99EF2.8010900@oracle.com> <53FAECEE.3010007@oracle.com> <53FCCCE6.3080701@oracle.com> Message-ID: <53FD5B06.2020607@oracle.com> Hi Jason, Thanks for your review comments. On 8/26/2014 11:37 PM, Jason Uh wrote: > Hi Raghu, > > I'm not an official Reviewer, but I have some comments, mostly about > X509Test.java. > > 1. I'm not sure if this matters, but the formatting of your copyright > header is a little strange. The text appears to be correct, but the > line breaks occur at non-standard places. If you look at any other > file, the first couple lines would look like this: > > /* > * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. > * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > > Again, not sure how important this is, but it applies to every file in > the webrev. I'd suggest changing them. > This happened due to default formatting by Netbeans . I will correct it. > 2. checkMethod(): > Doesn't appear to be used anywhere. Do you want to keep this? If you > do, could you add a comment to explain the parameters? > > Also, in general for the rest of the methods, there are a lot of > parameters noted with the @param tag. If you want to leave those > javadoc style comments in, could you please describe the params? > X509Test is used by many other tests ( appart from these tests as part of the webrev). I will add comment and description for the params. > 3. equals() and assertByteArray() both seem to be > "assertEquals()"-style methods, but they are named a bit differently. > could you make the naming consistent? For example, maybe assertEquals > / assertByteArrayEquals. > Yes it make sense. I will make the necessary changes . 4. getElementesTest() should probably read getElementsTest(). You use this method in IssuerAlternativeNameExtensionTest.java, by the way. typo needs to be fixed. Thanks, Raghu > Otherwise, I think the tests look good to me, but again, I'm not a > Reviewer, so you still need an official review. > > Thanks, > Jason > > > > On 08/25/2014 03:59 AM, raghu k.nair wrote: >> Hi Vincent / Jason, >> Could you please help in reviewing the following test. >> >> Thanks, >> Raghu Nair >> >> On 8/12/2014 10:28 AM, raghu k.nair wrote: >>> Hello, >>> Please review the tests for sun.security.x509 classes. >>> These cover tests for GeneralName, GeneralNames, GeneralSubtree, >>> GeneralSubtrees, IPAddressName and IssuerAlternativeNameExtension. >>> >>> webrev: >>> http://cr.openjdk.java.net/~rhalade/8049039/webrev.00/ >>> >>> Bug: >>> https://bugs.openjdk.java.net/browse/JDK-8049039 >>> >>> Thanks, >>> Raghu Nair >> From raghu.k.nair at oracle.com Wed Aug 27 06:36:20 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 12:06:20 +0530 Subject: Updated review request for CR 8048362 Test doPrivileged with accomplice In-Reply-To: <53F4D676.6070200@oracle.com> References: <53DF3226.7010601@oracle.com> <53EA50B8.10901@oracle.com> <53F4D676.6070200@oracle.com> Message-ID: <53FD7C64.7080108@oracle.com> Hi Vincent, Would you be able push this change for my be half. Full comments: 8048362 : Tests for doPrivileged with accomplice Reviewed-by: Vincent Ryan Contributed-by: Raghu Nair webrev: http://cr.openjdk.java.net/~tyan/raghu/8048362/webrev.04/ Thanks, Raghu On 8/20/2014 10:40 PM, raghu k.nair wrote: > Hello, > Please review the updated webrev : > http://cr.openjdk.java.net/~tyan/raghu/8048362/webrev.04/ > > I have updated the path of JavaToolUtils in DoPrivAccompliceTest.java. > > Thanks, > Raghu > On 8/12/2014 11:06 PM, raghu k.nair wrote: >> Hello , >> The latest webrev is available at >> http://cr.openjdk.java.net/~rhalade/8048362/webrev.03/ >> The >> changes include review comments from Vinnie . >> >> Thanks, >> Raghu >> On 8/8/2014 7:21 PM, Vincent Ryan wrote: >>> Code looks fine. >>> I noticed a few typos: DoPrivTest.java l.26 and >>> DoPrivAccompliceTest.java l.34-38 >>> >>> >>> On 4 Aug 2014, at 08:11, raghu k.nair wrote: >>> >>>> Hello , >>>> Please review the updated tests for doPrivilaged with accomplice. >>>> Updated the test to use @compile tag rather than compiling using API. >>>> >>>> Bug -https://bugs.openjdk.java.net/browse/JDK-8048362 >>>> webrev - http://cr.openjdk.java.net/~rhalade/8048362/webrev.01/ >>>> >>>> >>>> Thanks, >>>> Raghu >>>> >> > From weijun.wang at oracle.com Wed Aug 27 07:17:41 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 15:17:41 +0800 Subject: RFR 8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss Message-ID: Hi All Please review the code change at http://cr.openjdk.java.net/~weijun/8042900/webrev.00/ The purpose of this fix is to move com.sun.security.jgss (where the ExtendedGSSXXX classes reside) out of the java.security.jgss module, since it is openjdk-specific and not defined in Java SE. This is listed as the 1st open issue in http://openjdk.java.net/jeps/200. Because GSSManager::createContext() actually returns an ExtendedGSSContext object now, we will need to add a check there so that when the extended classes are available it still returns ExtendedGSSContext and otherwise a plain GSSContext. An internal OrgIetfJgssExtender class is defined and Extender in com.sun.security.jgss extends it. When GSSManagerImpl is creating a GSSContext (or GSSCredential) object, it detects whether an extension is available and if so returns a "wrapped" object that has extended functions. Please note that in this fix all extended functions are actually implemented in the basic (say, GSSContextImpl) class, but they are only exported through the extended interface (say, ExtendedGSSContext) to application developers. The detection of whether an extension is available is now performed by calling "Class.forName("com.sun.security.jgss.Extender")". This will be revisited later if we have other handy methods to detect whether a module is available or be converted to a service loader. A sub-task (JDK-8056141) will move com.sun.security.jgss and com.sun.security.sasl.gsskerb into a new jdk.security.jgss module. Thanks Max From raghu.k.nair at oracle.com Wed Aug 27 07:59:53 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 13:29:53 +0530 Subject: Please review CR 8048356 Secure Random provider tests Message-ID: <53FD8FF9.9080701@oracle.com> Hi Brad, Could you please help in reviewing the following test. webrev: http://cr.openjdk.java.net/~tyan/raghu/8048356/webrev01/ Bug : JDK-8048356 Thanks, Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From ecki at zusammenkunft.net Wed Aug 27 09:27:31 2014 From: ecki at zusammenkunft.net (Bernd Eckenfels) Date: Wed, 27 Aug 2014 11:27:31 +0200 Subject: Please review CR 8048356 Secure Random provider tests In-Reply-To: <53FD8FF9.9080701@oracle.com> References: <53FD8FF9.9080701@oracle.com> Message-ID: <53fda492.d2318c0a.3032.ffff91a5@mx.google.com> Hello, Since the topic is interesting to me I took a look. Have some nits or points to discuss: The testProvider() function seems to be missnamed, it actually checks the default Implementation (for the right provider). Maybe testDefaultProvider()? i would also remove the elses, especially as they print different Passed messages. Just one print line after the guards. BTW, i think it is very common for java code to request SHA1Prng unconditionally (with and without provider=sun) i would add that to all OS as a test. I also wonder if this would be the right place to test the strong secure random getter as well? what about testing the sorting logic (based on the egd url property) I think this is still implemented, even with the different seeding modes for Native. Gruss Bernd -- http://bernd.eckenfels.net ----- Urspr?ngliche Nachricht ----- Von: "raghu k.nair" Gesendet: ?27.?08.?2014 11:00 An: "Bradford Wetmore" Cc: "security-dev at openjdk.java.net" Betreff: Please review CR 8048356 Secure Random provider tests Hi Brad, Could you please help in reviewing the following test. webrev: http://cr.openjdk.java.net/~tyan/raghu/8048356/webrev01/ Bug : JDK-8048356 Thanks, Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.sandoz at oracle.com Wed Aug 27 09:51:06 2014 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 27 Aug 2014 11:51:06 +0200 Subject: The future of Serialization In-Reply-To: <53E6586F.7080906@oracle.com> References: <1407563776.1841.30.camel@Nokia-N900> <53E6586F.7080906@oracle.com> Message-ID: On Aug 9, 2014, at 7:20 PM, Brian Goetz wrote: >> I've noticed there's not much interest in improving Serialization on >> these lists. This makes me wonder if java Serialization has lost >> relevance in recent years with the rise of protocol buffers apache >> thrift and other means of data transfer over byte streams. > > I sense your frustration, but I think you may be reaching the wrong conclusion. The lack of response is probably not evidence that there's no interest in fixing serialization; its that fixing serialization, with all the constraints that "fix" entails, is just really really hard, and its much easier to complain about it (and even say "let's just get rid of it") than to fix it. > >> Should Serializable eventually be deprecated? Should Serialization be >> disabled by default? Should a new mechanism be developed? If a new >> mechanism is developed, what about circular object relationships? > > As I delved into my own explorations of serialization, I started to realize why such a horrible approach was the one that was ultimately chosen; while serialization is horrible and awful and leaky and insecure and complex and brittle, it does address problems like cyclic data structures and independent evolution of subclass and superclass better than the "clean" models. > > My conclusion is, at best, a new mechanism would have to live side-by-side with the old one, since it could only handle 95% of the cases. It might handle those 95% much better -- more cleanly, securely, and allowing easier schema evolution -- but the hard cases are still there. Still, reducing the use of the horrible old mechanism may still be a worthy goal, even if it can't be killed outright. > Also many serialization-based libraries use sun.misc.Unsafe or sun.reflect.ReflectionFactory for various reasons (with backup plans if such classes are not available or accessible). As part to the future of serialization i think we need to evaluate libraries such as XStream and Objenesis to see what unsafe/internal mechanisms can be replaced by functionally equivalent safe public mechanisms. I have more questions than answers at the moment with regards to that :-( Paul. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 841 bytes Desc: Message signed with OpenPGP using GPGMail URL: From raghu.k.nair at oracle.com Wed Aug 27 10:32:52 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 16:02:52 +0530 Subject: Please review CR 8048356 Secure Random provider tests In-Reply-To: <53fda492.d2318c0a.3032.ffff91a5@mx.google.com> References: <53FD8FF9.9080701@oracle.com> <53fda492.d2318c0a.3032.ffff91a5@mx.google.com> Message-ID: <53FDB3D4.3090409@oracle.com> Hi Bernd, Thanks for looking into it. my comments in-line. On 8/27/2014 2:57 PM, Bernd Eckenfels wrote: > Hello, > > Since the topic is interesting to me I took a look. Have some nits or > points to discuss: The testProvider() function seems to be missnamed, > it actually checks the default Implementation (for the right > provider). Maybe testDefaultProvider()? > Yes you are right . I will rename the testname. > i would also remove the elses, especially as they print different > Passed messages. Just one print line after the guards. Agree on this. > > BTW, i think it is very common for java code to request SHA1Prng > unconditionally (with and without provider=sun) i would add that to > all OS as a test. This is already covered by test - sun/security/provider/SeedGenerator/SeedGeneratorChoice.java > > I also wonder if this would be the right place to test the strong > secure random getter as well? > Those tests are already covered Java Compatibility tests . That is the reason it is omitted from this test. > what about testing the sorting logic (based on the egd url property) I > think this is still implemented, even with the different seeding modes > for Native. > This covered by some of the existing tests sun/security/provider/SecureRandom/StrongSeedReader.java , test/closed/sun/security/provider/SecureRandom/SeederRace.java sun/security/provider/SeedGenerator/SeedGeneratorChoice.java Thanks, Raghu > Gruss > Bernd > > -- > http://bernd.eckenfels.net > ------------------------------------------------------------------------ > Von: raghu k.nair > Gesendet: ?27.?08.?2014 11:00 > An: Bradford Wetmore > Cc: security-dev at openjdk.java.net > Betreff: Please review CR 8048356 Secure Random provider tests > > Hi Brad, > Could you please help in reviewing the following test. > > webrev: http://cr.openjdk.java.net/~tyan/raghu/8048356/webrev01/ > > Bug : JDK-8048356 > > Thanks, > Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Wed Aug 27 14:13:43 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Wed, 27 Aug 2014 22:13:43 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <141CEE3F-4343-4767-A43C-5E7CF1A9F7A7@oracle.com> <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: On Aug 27, 2014, at 10:07, Wang Weijun wrote: > Webrev updated again, this time include more changes. > > http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/ > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/ The core part is updated again at http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/ including a fix s/(int)c/c/ in com/sun/tools/hat/internal/util/Misc.java and literal string merge in X509CRLEntryImpl.java, X509CRLImpl.java, and X509CertInfo.java. No change for the client part. Thanks Max From raghu.k.nair at oracle.com Wed Aug 27 15:31:34 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 21:01:34 +0530 Subject: Please review CR 8048356 Secure Random provider tests In-Reply-To: <53FDB3D4.3090409@oracle.com> References: <53FD8FF9.9080701@oracle.com> <53fda492.d2318c0a.3032.ffff91a5@mx.google.com> <53FDB3D4.3090409@oracle.com> Message-ID: <53FDF9D6.2050901@oracle.com> Hi Brad, Could you please review the updated webrev : http://cr.openjdk.java.net/~tyan/raghu/8048356/webrev02/ Updates are based on Bernd's comments. Thanks, Raghu Nair On 8/27/2014 4:02 PM, raghu k.nair wrote: > Hi Bernd, > Thanks for looking into it. my comments in-line. > On 8/27/2014 2:57 PM, Bernd Eckenfels wrote: >> Hello, >> >> Since the topic is interesting to me I took a look. Have some nits or >> points to discuss: The testProvider() function seems to be missnamed, >> it actually checks the default Implementation (for the right >> provider). Maybe testDefaultProvider()? >> > Yes you are right . I will rename the testname. >> i would also remove the elses, especially as they print different >> Passed messages. Just one print line after the guards. > Agree on this. >> >> BTW, i think it is very common for java code to request SHA1Prng >> unconditionally (with and without provider=sun) i would add that to >> all OS as a test. > This is already covered by test - > sun/security/provider/SeedGenerator/SeedGeneratorChoice.java >> >> I also wonder if this would be the right place to test the strong >> secure random getter as well? >> > Those tests are already covered Java Compatibility tests . That is the > reason it is omitted from this test. >> what about testing the sorting logic (based on the egd url property) >> I think this is still implemented, even with the different seeding >> modes for Native. >> > This covered by some of the existing tests > sun/security/provider/SecureRandom/StrongSeedReader.java , > test/closed/sun/security/provider/SecureRandom/SeederRace.java > sun/security/provider/SeedGenerator/SeedGeneratorChoice.java > > Thanks, > Raghu >> Gruss >> Bernd >> >> -- >> http://bernd.eckenfels.net >> ------------------------------------------------------------------------ >> Von: raghu k.nair >> Gesendet: ?27.?08.?2014 11:00 >> An: Bradford Wetmore >> Cc: security-dev at openjdk.java.net >> Betreff: Please review CR 8048356 Secure Random provider tests >> >> Hi Brad, >> Could you please help in reviewing the following test. >> >> webrev: http://cr.openjdk.java.net/~tyan/raghu/8048356/webrev01/ >> >> Bug : JDK-8048356 >> >> Thanks, >> Raghu Nair > -------------- next part -------------- An HTML attachment was scrubbed... URL: From raghu.k.nair at oracle.com Wed Aug 27 15:34:44 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Wed, 27 Aug 2014 21:04:44 +0530 Subject: Review request for CR 8049039 Need new tests for sun.securiy.x509 classes In-Reply-To: <53FD5B06.2020607@oracle.com> References: <53E99EF2.8010900@oracle.com> <53FAECEE.3010007@oracle.com> <53FCCCE6.3080701@oracle.com> <53FD5B06.2020607@oracle.com> Message-ID: <53FDFA94.6050607@oracle.com> Hi Vincent / Jason, Please review the updated webrev based on Jason's comments. webrev: http://cr.openjdk.java.net/~tyan/raghu/8049039/webrev02/ Thanks, Raghu Nair On 8/27/2014 9:43 AM, raghu k.nair wrote: > Hi Jason, > Thanks for your review comments. > On 8/26/2014 11:37 PM, Jason Uh wrote: >> Hi Raghu, >> >> I'm not an official Reviewer, but I have some comments, mostly about >> X509Test.java. >> >> 1. I'm not sure if this matters, but the formatting of your copyright >> header is a little strange. The text appears to be correct, but the >> line breaks occur at non-standard places. If you look at any other >> file, the first couple lines would look like this: >> >> /* >> * Copyright (c) 2014, Oracle and/or its affiliates. All rights >> reserved. >> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. >> >> Again, not sure how important this is, but it applies to every file >> in the webrev. I'd suggest changing them. >> > This happened due to default formatting by Netbeans . I will correct it. >> 2. checkMethod(): >> Doesn't appear to be used anywhere. Do you want to keep this? If you >> do, could you add a comment to explain the parameters? >> >> Also, in general for the rest of the methods, there are a lot of >> parameters noted with the @param tag. If you want to leave those >> javadoc style comments in, could you please describe the params? >> > X509Test is used by many other tests ( appart from these tests as part > of the webrev). I will add comment and description for the params. > >> 3. equals() and assertByteArray() both seem to be >> "assertEquals()"-style methods, but they are named a bit differently. >> could you make the naming consistent? For example, maybe assertEquals >> / assertByteArrayEquals. >> > Yes it make sense. I will make the necessary changes . > > 4. getElementesTest() should probably read getElementsTest(). You use > this method in IssuerAlternativeNameExtensionTest.java, by the way. > > typo needs to be fixed. > > Thanks, > Raghu >> Otherwise, I think the tests look good to me, but again, I'm not a >> Reviewer, so you still need an official review. >> >> Thanks, >> Jason >> >> >> >> On 08/25/2014 03:59 AM, raghu k.nair wrote: >>> Hi Vincent / Jason, >>> Could you please help in reviewing the following test. >>> >>> Thanks, >>> Raghu Nair >>> >>> On 8/12/2014 10:28 AM, raghu k.nair wrote: >>>> Hello, >>>> Please review the tests for sun.security.x509 classes. >>>> These cover tests for GeneralName, GeneralNames, GeneralSubtree, >>>> GeneralSubtrees, IPAddressName and IssuerAlternativeNameExtension. >>>> >>>> webrev: >>>> http://cr.openjdk.java.net/~rhalade/8049039/webrev.00/ >>>> >>>> Bug: >>>> https://bugs.openjdk.java.net/browse/JDK-8049039 >>>> >>>> Thanks, >>>> Raghu Nair >>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris.hegarty at oracle.com Wed Aug 27 15:45:08 2014 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Wed, 27 Aug 2014 16:45:08 +0100 Subject: RFR 8047031: Need new tests to check socket permission In-Reply-To: <53FB68EB.5050107@oracle.com> References: <53D6CDDB.7020705@oracle.com> <53FB68EB.5050107@oracle.com> Message-ID: <53FDFD04.30909@oracle.com> Amanda, I see you have implemented a getFreePort in this test, and it attempts to find a port within a range of 10 of the given port. I would have a concern about this when the test is run concurrently. Though we have come across similar issues in the past, as the socket permission needs to have a defined port range. I'm not sure if we ever came up with a good solution. Do you think it would be possible to get the free port first, and then create the socket permission instances dynamically accordingly? Or would this make the test very difficult to debug? -Chris. On 25/08/14 17:48, Amanda Jiang wrote: > Hi Michael, Chris and others > > We?re working on moving our internal security tests to open idk > repo(Include refactoring effort). Could you please help to review these > tests? > > Thanks, > Amanda > > On 7/28/14 5:25 PM, Amanda Jiang wrote: >> Hi All, >> >> Could you please review 1 new test to be added for SocketPermission. >> New test is added to check socket permissions, for instance - >> - java.net.SocketPermission with "connect", "resolve", "accept", "listen" >> with Socket, DatagramSocket, MulticastSocket etc. >> >> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8047031 >> WebRev: http://cr.openjdk.java.net/~rhalade/8047031/webrev.00/ >> >> Thanks, >> Amanda >> >> > From ivan.gerasimov at oracle.com Wed Aug 27 18:10:45 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Wed, 27 Aug 2014 22:10:45 +0400 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> Message-ID: <53FE1F25.6000409@oracle.com> Hi Max! > The core part is updated again at > > http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/ Can you please revert changes to src/java.base/share/classes/sun/net/www/MimeEntry.java, as they're conflicting with the fix for JDK-8054714? Apologizing for adding you more work. Sincerely yours, Ivan From weijun.wang at oracle.com Wed Aug 27 23:15:57 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 07:15:57 +0800 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <53FE1F25.6000409@oracle.com> References: <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> <53FE1F25.6000409@oracle.com> Message-ID: <061E7188-4F9F-490F-8261-D62D0C4E6C05@oracle.com> OK, I'll remember that. So you will include the StringBuilder changes into your fix? --Max On Aug 28, 2014, at 2:10, Ivan Gerasimov wrote: > Hi Max! > >> The core part is updated again at >> >> http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/ > > Can you please revert changes to src/java.base/share/classes/sun/net/www/MimeEntry.java, as they're conflicting with the fix for JDK-8054714? > > Apologizing for adding you more work. > > Sincerely yours, > Ivan > From ivan.gerasimov at oracle.com Wed Aug 27 23:49:17 2014 From: ivan.gerasimov at oracle.com (Ivan Gerasimov) Date: Thu, 28 Aug 2014 03:49:17 +0400 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: <061E7188-4F9F-490F-8261-D62D0C4E6C05@oracle.com> References: <53EA137C.5020701@oracle.com> <53F36DF4.6000008@oracle.com> <8ACDFE32-99C1-44A4-941D-47D3681EBA6A@oracle.com> <739FC8D7-A438-485D-99D0-BA88EF20CA36@oracle.com> <4FEECA8F-2B3A-42DE-9778-0119E644596D@oracle.com> <53FB53FC.5040605@oracle.com> <90DD3089-0347-4010-ADDC-686EF65FE48A@oracle.com> <53FE1F25.6000409@oracle.com> <061E7188-4F9F-490F-8261-D62D0C4E6C05@oracle.com> Message-ID: <53FE6E7D.9030007@oracle.com> On 28.08.2014 3:15, Wang Weijun wrote: > OK, I'll remember that. Thanks. > So you will include the StringBuilder changes into your fix? No. I reimplemented MimeEntry.toProperty() with StringJoiner: http://hg.openjdk.java.net/jdk9/dev/jdk/diff/8be081fb8db1/src/java.base/share/classes/sun/net/www/MimeEntry.java Sincerely yours, Ivan From zaiyao.liu at oracle.com Thu Aug 28 01:45:21 2014 From: zaiyao.liu at oracle.com (zaiyao liu) Date: Thu, 28 Aug 2014 09:45:21 +0800 Subject: RFR 8048621: Implement basic keystore tests Message-ID: <53FE89B1.3080502@oracle.com> Hi All, Please review the code change,the purpose of this fix is implement basic tests for keystore types supported by JDK. Webrev: http://cr.openjdk.java.net/~tyan/kevin/JDK-8048621/webrev01/ Bug: https://bugs.openjdk.java.net/browse/JDK-8048621 Thanks Kevin From raghu.k.nair at oracle.com Thu Aug 28 05:22:32 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Thu, 28 Aug 2014 10:52:32 +0530 Subject: Review request for CR 8048832 Implement tests for domain key store In-Reply-To: <53F6F681.7070901@oracle.com> References: <53F6F681.7070901@oracle.com> Message-ID: <53FEBC98.3050905@oracle.com> Hi Max, Could you please help me in reviewing the following Domain Keystore tests. Thanks, Raghu Nair On 8/22/2014 1:21 PM, raghu k.nair wrote: > Hello, > Please help to review the tests for Domain Keystore tests . > > Bug - https://bugs.openjdk.java.net/browse/JDK-8048832 > webrev- http://cr.openjdk.java.net/~tyan/raghu/8048832/webrev01/ > > > Thanks > Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From raghu.k.nair at oracle.com Thu Aug 28 05:27:35 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Thu, 28 Aug 2014 10:57:35 +0530 Subject: Please review CR 8049429 tests for java client server communications with various TLS/SSL combinations. In-Reply-To: <53F70D3F.6030703@oracle.com> References: <53F70D3F.6030703@oracle.com> Message-ID: <53FEBDC7.8020304@oracle.com> Hi Andrew, Could you please help in me in reviewing the following tests. Thanks, Raghu Nair On 8/22/2014 2:58 PM, raghu k.nair wrote: > Hello, > > Please help to review the tests for java client server > communications with various TLS/SSL combinations. > > Bug - https://bugs.openjdk.java.net/browse/JDK-8049429 > webrev-http://cr.openjdk.java.net/~tyan/raghu/8049429/webrev01/ > > > Thanks > Raghu Nair -------------- next part -------------- An HTML attachment was scrubbed... URL: From weijun.wang at oracle.com Thu Aug 28 05:42:11 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 13:42:11 +0800 Subject: Review request for CR 8048832 Implement tests for domain key store In-Reply-To: <53FEBC98.3050905@oracle.com> References: <53F6F681.7070901@oracle.com> <53FEBC98.3050905@oracle.com> Message-ID: <6C0ADBE1-8BD4-4F98-8E03-24DDB129A2C8@oracle.com> Can you ask Vinnie to look at them? He designed and implemented DKS. Although I know about the concept but I've never really used it. --Max On Aug 28, 2014, at 13:22, raghu k.nair wrote: > Hi Max, > Could you please help me in reviewing the following Domain Keystore tests. > > Thanks, > Raghu Nair > > On 8/22/2014 1:21 PM, raghu k.nair wrote: >> Hello, >> Please help to review the tests for Domain Keystore tests . >> >> Bug - https://bugs.openjdk.java.net/browse/JDK-8048832 >> webrev- http://cr.openjdk.java.net/~tyan/raghu/8048832/webrev01/ >> >> Thanks >> Raghu Nair > From weijun.wang at oracle.com Thu Aug 28 05:44:13 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 13:44:13 +0800 Subject: Please review CR 8049429 tests for java client server communications with various TLS/SSL combinations. In-Reply-To: <53FEBDC7.8020304@oracle.com> References: <53F70D3F.6030703@oracle.com> <53FEBDC7.8020304@oracle.com> Message-ID: <97AC660D-4AC8-4D13-BB2E-B756012491B8@oracle.com> I guess you were looking for Xuelei, the other Andrew in our team focusing on SSL/TLS. Normally we use Drew when talking about Andrew Gross. --Max On Aug 28, 2014, at 13:27, raghu k.nair wrote: > Hi Andrew, > > Could you please help in me in reviewing the following tests. > > Thanks, > Raghu Nair > > On 8/22/2014 2:58 PM, raghu k.nair wrote: >> Hello, >> >> Please help to review the tests for java client server communications with various TLS/SSL combinations. >> >> Bug - https://bugs.openjdk.java.net/browse/JDK-8049429 >> webrev- http://cr.openjdk.java.net/~tyan/raghu/8049429/webrev01/ >> >> Thanks >> Raghu Nair > From raghu.k.nair at oracle.com Thu Aug 28 05:43:21 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Thu, 28 Aug 2014 11:13:21 +0530 Subject: Review request for CR 8048832 Implement tests for domain key store In-Reply-To: <6C0ADBE1-8BD4-4F98-8E03-24DDB129A2C8@oracle.com> References: <53F6F681.7070901@oracle.com> <53FEBC98.3050905@oracle.com> <6C0ADBE1-8BD4-4F98-8E03-24DDB129A2C8@oracle.com> Message-ID: <53FEC179.9000301@oracle.com> Hi Vincent, Please help me in reviewing Bug - https://bugs.openjdk.java.net/browse/JDK-8048832 webrev- http://cr.openjdk.java.net/~tyan/raghu/8048832/webrev01/ Thanks, Raghu Nair On 8/28/2014 11:12 AM, Wang Weijun wrote: > Can you ask Vinnie to look at them? He designed and implemented DKS. Although I know about the concept but I've never really used it. > > --Max > > On Aug 28, 2014, at 13:22, raghu k.nair wrote: > >> Hi Max, >> Could you please help me in reviewing the following Domain Keystore tests. >> >> Thanks, >> Raghu Nair >> >> On 8/22/2014 1:21 PM, raghu k.nair wrote: >>> Hello, >>> Please help to review the tests for Domain Keystore tests . >>> >>> Bug - https://bugs.openjdk.java.net/browse/JDK-8048832 >>> webrev- http://cr.openjdk.java.net/~tyan/raghu/8048832/webrev01/ >>> >>> Thanks >>> Raghu Nair From xuelei.fan at oracle.com Thu Aug 28 05:50:42 2014 From: xuelei.fan at oracle.com (Xuelei Fan) Date: Thu, 28 Aug 2014 13:50:42 +0800 Subject: Please review CR 8049429 tests for java client server communications with various TLS/SSL combinations. In-Reply-To: <53FEBDC7.8020304@oracle.com> References: <53F70D3F.6030703@oracle.com> <53FEBDC7.8020304@oracle.com> Message-ID: <53FEC332.6060301@oracle.com> Remove Drew from the CC list. I have not read too much about the test code. I think, binary files are not preferred in mercurial workspace. Would you mind convert the PKCS12 binary file to nested stream in the test code? Here is an example about how to avoid the use of binary key store file. test/javax/net/ssl/TLSv12/ShortRSAKey512.java Xuelei On 8/28/2014 1:27 PM, raghu k.nair wrote: > Hi Andrew, > > Could you please help in me in reviewing the following tests. > > Thanks, > Raghu Nair > > On 8/22/2014 2:58 PM, raghu k.nair wrote: >> Hello, >> >> Please help to review the tests for java client server >> communications with various TLS/SSL combinations. >> >> Bug - https://bugs.openjdk.java.net/browse/JDK-8049429 >> webrev- http://cr.openjdk.java.net/~tyan/raghu/8049429/webrev01/ >> >> >> Thanks >> Raghu Nair > From raghu.k.nair at oracle.com Thu Aug 28 05:57:22 2014 From: raghu.k.nair at oracle.com (raghu k.nair) Date: Thu, 28 Aug 2014 11:27:22 +0530 Subject: Please review CR 8049429 tests for java client server communications with various TLS/SSL combinations. In-Reply-To: <53FEC332.6060301@oracle.com> References: <53F70D3F.6030703@oracle.com> <53FEBDC7.8020304@oracle.com> <53FEC332.6060301@oracle.com> Message-ID: <53FEC4C2.7050901@oracle.com> Hi Xuelei, I will send you the updated webrev once made the changes. Thanks, Raghu Nair On 8/28/2014 11:20 AM, Xuelei Fan wrote: > Remove Drew from the CC list. > > I have not read too much about the test code. I think, binary files are > not preferred in mercurial workspace. Would you mind convert the PKCS12 > binary file to nested stream in the test code? > > Here is an example about how to avoid the use of binary key store file. > test/javax/net/ssl/TLSv12/ShortRSAKey512.java > > Xuelei > > On 8/28/2014 1:27 PM, raghu k.nair wrote: >> Hi Andrew, >> >> Could you please help in me in reviewing the following tests. >> >> Thanks, >> Raghu Nair >> >> On 8/22/2014 2:58 PM, raghu k.nair wrote: >>> Hello, >>> >>> Please help to review the tests for java client server >>> communications with various TLS/SSL combinations. >>> >>> Bug - https://bugs.openjdk.java.net/browse/JDK-8049429 >>> webrev- http://cr.openjdk.java.net/~tyan/raghu/8049429/webrev01/ >>> >>> >>> Thanks >>> Raghu Nair From Alan.Bateman at oracle.com Thu Aug 28 08:54:04 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 28 Aug 2014 09:54:04 +0100 Subject: RFR 8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss In-Reply-To: References: Message-ID: <53FEEE2C.7000308@oracle.com> On 27/08/2014 08:17, Wang Weijun wrote: > Hi All > > Please review the code change at > > http://cr.openjdk.java.net/~weijun/8042900/webrev.00/ > > The purpose of this fix is to move com.sun.security.jgss (where the ExtendedGSSXXX classes reside) out of the java.security.jgss module, since it is openjdk-specific and not defined in Java SE. This is listed as the 1st open issue in http://openjdk.java.net/jeps/200. > > Because GSSManager::createContext() actually returns an ExtendedGSSContext object now, we will need to add a check there so that when the extended classes are available it still returns ExtendedGSSContext and otherwise a plain GSSContext. An internal OrgIetfJgssExtender class is defined and Extender in com.sun.security.jgss extends it. When GSSManagerImpl is creating a GSSContext (or GSSCredential) object, it detects whether an extension is available and if so returns a "wrapped" object that has extended functions. > > Please note that in this fix all extended functions are actually implemented in the basic (say, GSSContextImpl) class, but they are only exported through the extended interface (say, ExtendedGSSContext) to application developers. > > The detection of whether an extension is available is now performed by calling "Class.forName("com.sun.security.jgss.Extender")". This will be revisited later if we have other handy methods to detect whether a module is available or be converted to a service loader. > > A sub-task (JDK-8056141) will move com.sun.security.jgss and com.sun.security.sasl.gsskerb into a new jdk.security.jgss module. > > I've looked through the changes, I don't claim to know this area very well and so I think it needs a Reviewer from the security area to help review too. At a high-level then the approach seems reasonable and I see how this will fits with the second part that will facilitate the refactoring of com.sun.security.jgss to another module. The Class.forName to tickle the Extender to register seems okay. A minor comment on Extender is that I think I'd prefer the methods to named "wrap" rather than "wrapped", also I assume you'll add a copyright header to the file before you push. A minor comment on OrgIetfJgssExtender is that perhaps JgssExtender would be a simpler name. Can the setExtender method be protected rather than public, I assume it will only ever be called by sub-types. Should theOthe be volatile? I can't tell if there are any race conditions here. As per Extender I would have a preference for wrap rather than wrapped. I don't think I understand the update to test S4U2selfGSS.java, is this related to this change? Otherwise I don't see any issues and overall this seems good work. -Alan. From weijun.wang at oracle.com Thu Aug 28 09:36:43 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 17:36:43 +0800 Subject: RFR 8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss In-Reply-To: <53FEEE2C.7000308@oracle.com> References: <53FEEE2C.7000308@oracle.com> Message-ID: <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> Hi Alan Thanks for the review. All suggestions accepted. Change for S4U2selfGSS is not related and can be reverted. In fact, I have a question. Is there a way to run a test with a module invisible? I can try my tests by removing the com.sun.security.jgss classes manually but that won't work for automatic regression tests. --Max On Aug 28, 2014, at 16:54, Alan Bateman wrote: > On 27/08/2014 08:17, Wang Weijun wrote: >> Hi All >> >> Please review the code change at >> >> http://cr.openjdk.java.net/~weijun/8042900/webrev.00/ >> >> The purpose of this fix is to move com.sun.security.jgss (where the ExtendedGSSXXX classes reside) out of the java.security.jgss module, since it is openjdk-specific and not defined in Java SE. This is listed as the 1st open issue in http://openjdk.java.net/jeps/200. >> >> Because GSSManager::createContext() actually returns an ExtendedGSSContext object now, we will need to add a check there so that when the extended classes are available it still returns ExtendedGSSContext and otherwise a plain GSSContext. An internal OrgIetfJgssExtender class is defined and Extender in com.sun.security.jgss extends it. When GSSManagerImpl is creating a GSSContext (or GSSCredential) object, it detects whether an extension is available and if so returns a "wrapped" object that has extended functions. >> >> Please note that in this fix all extended functions are actually implemented in the basic (say, GSSContextImpl) class, but they are only exported through the extended interface (say, ExtendedGSSContext) to application developers. >> >> The detection of whether an extension is available is now performed by calling "Class.forName("com.sun.security.jgss.Extender")". This will be revisited later if we have other handy methods to detect whether a module is available or be converted to a service loader. >> >> A sub-task (JDK-8056141) will move com.sun.security.jgss and com.sun.security.sasl.gsskerb into a new jdk.security.jgss module. >> >> > I've looked through the changes, I don't claim to know this area very well and so I think it needs a Reviewer from the security area to help review too. > > At a high-level then the approach seems reasonable and I see how this will fits with the second part that will facilitate the refactoring of com.sun.security.jgss to another module. The Class.forName to tickle the Extender to register seems okay. > > A minor comment on Extender is that I think I'd prefer the methods to named "wrap" rather than "wrapped", also I assume you'll add a copyright header to the file before you push. > > A minor comment on OrgIetfJgssExtender is that perhaps JgssExtender would be a simpler name. Can the setExtender method be protected rather than public, I assume it will only ever be called by sub-types. Should theOthe be volatile? I can't tell if there are any race conditions here. As per Extender I would have a preference for wrap rather than wrapped. > > I don't think I understand the update to test S4U2selfGSS.java, is this related to this change? > > Otherwise I don't see any issues and overall this seems good work. > > -Alan. From Alan.Bateman at oracle.com Thu Aug 28 09:44:31 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 28 Aug 2014 10:44:31 +0100 Subject: RFR 8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss In-Reply-To: <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> Message-ID: <53FEF9FF.7050603@oracle.com> On 28/08/2014 10:36, Wang Weijun wrote: > : > > In fact, I have a question. Is there a way to run a test with a module invisible? I can try my tests by removing the com.sun.security.jgss classes manually but that won't work for automatic regression tests. > There is requirement for launch-time configuration [1] so that should be possible in the future. -Alan [1] http://openjdk.java.net/projects/jigsaw/goals-reqs/03#launch-time-configuration From weijun.wang at oracle.com Thu Aug 28 10:28:43 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 18:28:43 +0800 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <53FEF9FF.7050603@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> Message-ID: <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> This is the sub-task of "8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss" that actually moves the files. Code changes include 2 parts: 1. For jdk9/dev repo: http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ 2. For jdk9/dev/jdk. It's just moving everything inside src/java.security.jgss/share/classes/com/sun/security/ to src/jdk.security.jgss/share/classes/com/sun/security. This includes all classes in the com/sun/security/jgss and com/sun/security/sasl/gsskerb packages. Please note that the 2nd package actually calls classes in the 1st one, so they must be moved together. Precisely: - src/java.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java - src/java.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java - src/java.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java - src/java.security.jgss/share/classes/com/sun/security/jgss/Extender.java - src/java.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java - src/java.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java - src/java.security.jgss/share/classes/com/sun/security/jgss/InquireType.java - src/java.security.jgss/share/classes/com/sun/security/jgss/package-info.java - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/Extender.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireType.java + src/jdk.security.jgss/share/classes/com/sun/security/jgss/package-info.java + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java Since this is about creating a new module, do I need to request for an approval from some committee? Thanks Max From Alan.Bateman at oracle.com Thu Aug 28 10:52:17 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 28 Aug 2014 11:52:17 +0100 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> Message-ID: <53FF09E1.8080504@oracle.com> On 28/08/2014 11:28, Wang Weijun wrote: > This is the sub-task of "8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss" that actually moves the files. > > Code changes include 2 parts: > > 1. For jdk9/dev repo: > > http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ > > 2. For jdk9/dev/jdk. It's just moving everything inside src/java.security.jgss/share/classes/com/sun/security/ to src/jdk.security.jgss/share/classes/com/sun/security. This includes all classes in the com/sun/security/jgss and com/sun/security/sasl/gsskerb packages. Please note that the 2nd package actually calls classes in the 1st one, so they must be moved together. For the benefit of the others, the substantive part that is JDK-8042900 is currently in review on security-dev. It's also one of the open issues listed in JEP 200. Max - the main thing is that is missing in this is the update to modules.xml, this is temporary document that is checked into the top-level repo until there is a module system in place. I'll defer to Mandy as to whether she wants to re-generate it or whether to edit manually (I think this will be the first adjustment since the source code restructure was pushed). -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris.hegarty at oracle.com Thu Aug 28 12:17:13 2014 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Thu, 28 Aug 2014 13:17:13 +0100 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> Message-ID: On 28 Aug 2014, at 11:28, Wang Weijun wrote: > This is the sub-task of "8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss" that actually moves the files. > > Code changes include 2 parts: > > 1. For jdk9/dev repo: > > http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ Thank you for updating the unshuffle list. This looks good to me. As Alan mentioned, a change to modules.xml will be required too. -Chris. > 2. For jdk9/dev/jdk. It's just moving everything inside src/java.security.jgss/share/classes/com/sun/security/ to src/jdk.security.jgss/share/classes/com/sun/security. This includes all classes in the com/sun/security/jgss and com/sun/security/sasl/gsskerb packages. Please note that the 2nd package actually calls classes in the 1st one, so they must be moved together. Precisely: > > - src/java.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/Extender.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/InquireType.java > - src/java.security.jgss/share/classes/com/sun/security/jgss/package-info.java > - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java > - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java > - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java > - src/java.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/Extender.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireType.java > + src/jdk.security.jgss/share/classes/com/sun/security/jgss/package-info.java > + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java > + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java > + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java > + src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java > > Since this is about creating a new module, do I need to request for an approval from some committee? > Thanks > Max > From weijun.wang at oracle.com Thu Aug 28 13:02:13 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 21:02:13 +0800 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <53FF09E1.8080504@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> <53FF09E1.8080504@oracle.com> Message-ID: On Aug 28, 2014, at 18:52, Alan Bateman wrote: >> >> http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ >> > > Max - the main thing is that is missing in this is the update to modules.xml, this is temporary document that is checked into the top-level repo until there is a module system in place. I'll defer to Mandy as to whether she wants to re-generate it or whether to edit manually (I think this will be the first adjustment since the source code restructure was pushed). Webrev updated at the same URL. I manually edited modules.xml, but if it can be re-generated automatically I'll be happy to use it. --Max > > -Alan > > From Alan.Bateman at oracle.com Thu Aug 28 13:06:56 2014 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 28 Aug 2014 14:06:56 +0100 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> <53FF09E1.8080504@oracle.com> Message-ID: <53FF2970.40807@oracle.com> On 28/08/2014 14:02, Wang Weijun wrote: > On Aug 28, 2014, at 18:52, Alan Bateman wrote: > >>> >>> http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ >>> >> Max - the main thing is that is missing in this is the update to modules.xml, this is temporary document that is checked into the top-level repo until there is a module system in place. I'll defer to Mandy as to whether she wants to re-generate it or whether to edit manually (I think this will be the first adjustment since the source code restructure was pushed). > Webrev updated at the same URL. > > I manually edited modules.xml, but if it can be re-generated automatically I'll be happy to use it. > Have you run "make verify-modules"? -Alan. From weijun.wang at oracle.com Thu Aug 28 13:43:03 2014 From: weijun.wang at oracle.com (Wang Weijun) Date: Thu, 28 Aug 2014 21:43:03 +0800 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <53FF2970.40807@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> <53FF09E1.8080504@oracle.com> <53FF2970.40807@oracle.com> Message-ID: <1091287D-845F-4492-9A16-115DD7B7CD18@oracle.com> On Aug 28, 2014, at 21:06, Alan Bateman wrote: > On 28/08/2014 14:02, Wang Weijun wrote: >> On Aug 28, 2014, at 18:52, Alan Bateman wrote: >> >>>> http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ >>>> >>> Max - the main thing is that is missing in this is the update to modules.xml, this is temporary document that is checked into the top-level repo until there is a module system in place. I'll defer to Mandy as to whether she wants to re-generate it or whether to edit manually (I think this will be the first adjustment since the source code restructure was pushed). >> Webrev updated at the same URL. >> >> I manually edited modules.xml, but if it can be re-generated automatically I'll be happy to use it. >> > Have you run "make verify-modules"? Oops. Succeed after more change diff --git a/modules.xml b/modules.xml --- a/modules.xml +++ b/modules.xml @@ -920,6 +920,14 @@ sun.security.krb5.internal.ktab jdk.security.auth + + sun.security.jgss + jdk.security.jgss + + + sun.security.krb5.internal + jdk.security.jgss + java.security.sasl @@ -1739,7 +1747,7 @@ jdk.security.jgss java.base java.logging - java.security.jgss + java.security.jgss java.security.sasl com.sun.security.jgss Webrev still there. --Max > > -Alan. From mandy.chung at oracle.com Thu Aug 28 19:47:47 2014 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 28 Aug 2014 12:47:47 -0700 Subject: RFR 8056141: Move com.sun.security.jgss into a new module In-Reply-To: <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> References: <53FEEE2C.7000308@oracle.com> <1B57A59A-C6B8-402E-B02A-B4D81B257ECB@oracle.com> <53FEF9FF.7050603@oracle.com> <10ED1BA3-3045-4C4D-ACB0-D2C81C99391A@oracle.com> Message-ID: <53FF8763.7010401@oracle.com> On 8/28/14 3:28 AM, Wang Weijun wrote: > This is the sub-task of "8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss" that actually moves the files. > > Code changes include 2 parts: > > 1. For jdk9/dev repo: > > http://cr.openjdk.java.net/~weijun/8056141/webrev.00/ > > 2. For jdk9/dev/jdk. It's just moving everything inside src/java.security.jgss/share/classes/com/sun/security/ to src/jdk.security.jgss/share/classes/com/sun/security. This includes all classes in the com/sun/security/jgss and com/sun/security/sasl/gsskerb packages. Your change looks okay including the change to modules.xml. I believe jdk.security.jgss using sun.security.krb5.internal is introduced by 8042900. Can you run the following and double check: $ cd BUILD_OUTPUTDIR/jdk $ ./bin/jdeps -M modules/java.security.jgss modules/jdk.security.jgss The output will tell you what modules java.security.jgss and jdk.security.jgss depend on and then follow with the package-level dependences. Looks for "JDK internal API" that indicates that you need to add a qualified export to jdk.security.jgss to use. You have already done this: $ make verify-modules The images build will run the verify-modules as well. Mandy From amanda.jiang at oracle.com Fri Aug 29 18:39:51 2014 From: amanda.jiang at oracle.com (Amanda Jiang) Date: Fri, 29 Aug 2014 13:39:51 -0500 Subject: RFR 8047031: Need new tests to check socket permission In-Reply-To: <53FDFD04.30909@oracle.com> References: <53D6CDDB.7020705@oracle.com> <53FB68EB.5050107@oracle.com> <53FDFD04.30909@oracle.com> Message-ID: <5400C8F7.7080202@oracle.com> Hi Chris, Thanks for reviewing this test. I have upgraded the test by your suggestions, in the new version, free port is generated first then socket permission instances are created dynamically. Lambda and TestNG are also applied for simplifying tests and reducing redundant codes. Please check the webrev below: http://cr.openjdk.java.net/~tyan/amandaj/8047031/webrev00/ Thanks, Amanda On 8/27/14 10:45 AM, Chris Hegarty wrote: > Amanda, > > I see you have implemented a getFreePort in this test, and it attempts > to find a port within a range of 10 of the given port. I would have a > concern about this when the test is run concurrently. Though we have > come across similar issues in the past, as the socket permission needs > to have a defined port range. I'm not sure if we ever came up with a > good solution. > > Do you think it would be possible to get the free port first, and then > create the socket permission instances dynamically accordingly? Or > would this make the test very difficult to debug? > > -Chris. > > On 25/08/14 17:48, Amanda Jiang wrote: >> Hi Michael, Chris and others >> >> We?re working on moving our internal security tests to open idk >> repo(Include refactoring effort). Could you please help to review these >> tests? >> >> Thanks, >> Amanda >> >> On 7/28/14 5:25 PM, Amanda Jiang wrote: >>> Hi All, >>> >>> Could you please review 1 new test to be added for SocketPermission. >>> New test is added to check socket permissions, for instance - >>> - java.net.SocketPermission with "connect", "resolve", "accept", >>> "listen" >>> with Socket, DatagramSocket, MulticastSocket etc. >>> >>> JDK Issue: https://bugs.openjdk.java.net/browse/JDK-8047031 >>> WebRev: http://cr.openjdk.java.net/~rhalade/8047031/webrev.00/ >>> >>> Thanks, >>> Amanda >>> >>> >> From weijun.wang at oracle.com Sun Aug 31 01:59:43 2014 From: weijun.wang at oracle.com (Weijun Wang) Date: Sun, 31 Aug 2014 09:59:43 +0800 Subject: RFR 8042900: Allow com.sun.security.jgss to be in different module than org.ietf.jgss In-Reply-To: <53FEEE2C.7000308@oracle.com> References: <53FEEE2C.7000308@oracle.com> Message-ID: <5402818F.5030405@oracle.com> Webrev updated at http://cr.openjdk.java.net/~weijun/8042900/webrev.01/ as per Alan's suggestions. Can anyone in the security team take a look? Thanks Max From otaviojava at java.net Sat Aug 30 13:12:45 2014 From: otaviojava at java.net (=?UTF-8?Q?Ot=C3=A1vio_Gon=C3=A7alves_de_Santana?=) Date: Sat, 30 Aug 2014 10:12:45 -0300 Subject: Replace concat String to append in StringBuilder parameters In-Reply-To: References: <53E7FA44.9050207@oracle.com> <476830A4-7A8E-4652-A0C7-805687155F4A@oracle.com> <53E8CCD6.2090503@CoSoCo.de> <53FDA7C1.6060303@CoSoCo.de> <902B0B7A-32BE-498A-B9DD-8937960430A2@oracle.com> <53FF7244.2030804@CoSoCo.de> Message-ID: I believe yes. Using the -XX:+OptimizeStringConcat: java -jar -XX:+OptimizeStringConcat target/microbenchmarks.jar ".*StringBuilderConcatBenchMark.*" -wi 10 -i 10 -f 1 The same thing happened: Benchmark Mode Samples Mean Mean error Units m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 6316489.783 211751.479 ops/s m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 3206244.215 60752.652 ops/s So, can you review these changes, please. https://bugs.openjdk.java.net/browse/JDK-8055723 http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/ http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/ http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/ On Fri, Aug 29, 2014 at 5:01 AM, Wang Weijun wrote: > So it's not that the optimization fails but there is no optimization on > them yet. > > I do see the .append("x") case will be easy to deal with, but it looks > like historically javac has not been a place to do many optimizations. It > mostly converts the java source to byte codes in a 1-to-1 mapping and let > VM do whatever it wants (to optimize). When you talked about compiling > multiple concatenation into using a single StringBuilder, it's more like > choosing the correct implementation rather than an optimization. > > I don't expect to see big change on this in the near future, so shall we > go on with the current enhancement? > > Thanks > Max > > On Aug 29, 2014, at 2:17, Ulf Zibis wrote: > > > I mean: > > It does not output byte code that only uses a single char array to > compose the entire String in question. > > With "optimization fails", I also mean, there is used an additional > "StringComposer" e.g. another StringBuilder or a StringJoiner in addition > to the 1st StringBuilder. > > > > -Ulf > > > > Am 27.08.2014 um 14:02 schrieb Pavel Rappo: > >> Could you please explain what you mean by "javac optimization fails" > here? > >> > >> -Pavel > >> > >> On 27 Aug 2014, at 10:41, Ulf Zibis wrote: > >> > >>> 4.) Now we see, that javac optimization fails again if StringBuilder, > concatenation, toString(), append(String), append(Collection) etc. and > StringJoiner use is mixed. > >> > > > > -- Ot?vio Gon?alves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: *http://about.me/otaviojava * 55 (11) 98255-3513 -------------- next part -------------- An HTML attachment was scrubbed... URL: