Re: InetAddress should utilize networkaddress.cache.ttl for getLocalHost() too

2012-07-11 Thread Alan Bateman

On 05/07/2012 07:10, Deven You wrote:

Hi All,

I noticed that InetAddress.getLocalHost() uses cache to improve the 
performance. However the default implementation is caching local host 
within 5 seconds.


From the spec, networkaddress.cache.ttl should be used to control the 
cache behaviour and I think it is a better solution.


For example, if the networkaddress.cache.ttl is set to -1 which means 
always cache the local host then we can avoid unnecessary operations 
on getAddressesFromNameService to improve the performance.


I have made a patch for this solution, so anyone would like to take a 
look?


[1] http://cr.openjdk.java.net/~littlee/OJDK-527/webrev.00/ 


Thanks a lot!
--
Best Regards,

Deven
I'm not sure about this one as I suspect it will cause problems in DHCP 
or any environments where the host addresses changes, say moving to a 
different wireless network or waking up a machine after hibernation.


-Alan


hg: jdk8/tl/jdk: 6966259: Make PrincipalName and Realm immutable

2012-07-11 Thread weijun . wang
Changeset: 79b63e8eceda
Author:weijun
Date:  2012-07-11 17:10 +0800
URL:   http://hg.openjdk.java.net/jdk8/tl/jdk/rev/79b63e8eceda

6966259: Make PrincipalName and Realm immutable
Reviewed-by: xuelei

! src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java
! src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java
! src/share/classes/sun/security/krb5/Credentials.java
! src/share/classes/sun/security/krb5/KrbApReq.java
! src/share/classes/sun/security/krb5/KrbAppMessage.java
! src/share/classes/sun/security/krb5/KrbAsRep.java
! src/share/classes/sun/security/krb5/KrbAsReq.java
! src/share/classes/sun/security/krb5/KrbAsReqBuilder.java
! src/share/classes/sun/security/krb5/KrbCred.java
! src/share/classes/sun/security/krb5/KrbException.java
! src/share/classes/sun/security/krb5/KrbKdcRep.java
! src/share/classes/sun/security/krb5/KrbPriv.java
! src/share/classes/sun/security/krb5/KrbSafe.java
! src/share/classes/sun/security/krb5/KrbTgsRep.java
! src/share/classes/sun/security/krb5/KrbTgsReq.java
! src/share/classes/sun/security/krb5/PrincipalName.java
! src/share/classes/sun/security/krb5/Realm.java
! src/share/classes/sun/security/krb5/RealmException.java
- src/share/classes/sun/security/krb5/ServiceName.java
! src/share/classes/sun/security/krb5/internal/ASRep.java
! src/share/classes/sun/security/krb5/internal/Authenticator.java
! src/share/classes/sun/security/krb5/internal/CredentialsUtil.java
! src/share/classes/sun/security/krb5/internal/EncASRepPart.java
! src/share/classes/sun/security/krb5/internal/EncKDCRepPart.java
! src/share/classes/sun/security/krb5/internal/EncTGSRepPart.java
! src/share/classes/sun/security/krb5/internal/EncTicketPart.java
! src/share/classes/sun/security/krb5/internal/KDCRep.java
! src/share/classes/sun/security/krb5/internal/KDCReqBody.java
! src/share/classes/sun/security/krb5/internal/KRBError.java
! src/share/classes/sun/security/krb5/internal/KrbCredInfo.java
! src/share/classes/sun/security/krb5/internal/TGSRep.java
! src/share/classes/sun/security/krb5/internal/Ticket.java
! src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
! src/share/classes/sun/security/krb5/internal/ccache/Credentials.java
! src/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java
! src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
! 
src/share/classes/sun/security/krb5/internal/ccache/MemoryCredentialsCache.java
! src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java
! src/share/classes/sun/security/ssl/krb5/KerberosClientKeyExchangeImpl.java
! src/windows/classes/sun/security/krb5/internal/tools/Kinit.java
! src/windows/classes/sun/security/krb5/internal/tools/KinitOptions.java
! src/windows/classes/sun/security/krb5/internal/tools/Ktab.java
! src/windows/native/sun/security/krb5/NativeCreds.c
- test/sun/security/krb5/ServiceNameClone.java
! test/sun/security/krb5/auto/KDC.java
+ test/sun/security/krb5/name/Constructors.java
+ test/sun/security/krb5/name/empty.conf
+ test/sun/security/krb5/name/krb5.conf



Re: InetAddress should utilize networkaddress.cache.ttl for getLocalHost() too

2012-07-11 Thread Michael McMahon

On 11/07/12 08:00, Alan Bateman wrote:

On 05/07/2012 07:10, Deven You wrote:

Hi All,

I noticed that InetAddress.getLocalHost() uses cache to improve the 
performance. However the default implementation is caching local host 
within 5 seconds.


From the spec, networkaddress.cache.ttl should be used to control the 
cache behaviour and I think it is a better solution.


For example, if the networkaddress.cache.ttl is set to -1 which means 
always cache the local host then we can avoid unnecessary operations 
on getAddressesFromNameService to improve the performance.


I have made a patch for this solution, so anyone would like to take a 
look?


[1] http://cr.openjdk.java.net/~littlee/OJDK-527/webrev.00/ 


Thanks a lot!
--
Best Regards,

Deven
I'm not sure about this one as I suspect it will cause problems in 
DHCP or any environments where the host addresses changes, say moving 
to a different wireless network or waking up a machine after hibernation.


-Alan


That's true. We updated the spec for the caching behavior a while back, 
and probably should have included this exception
for the local host. I agree that we shouldn't change the behavior. 
Perhaps, the 5 seconds could be configurable itself,

but I think it should be kept separate from the main caching behavior.

- Michael.