You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/03/21 00:31:07 UTC

svn commit: r387344 - /directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java

Author: elecharny
Date: Mon Mar 20 15:31:05 2006
New Revision: 387344

URL: http://svn.apache.org/viewcvs?rev=387344&view=rev
Log:
Fixed a memory consumption in LdapProtocolProvider : we where 
construction the encoder/decoder for each request...

Modified:
    directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java

Modified: directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java
URL: http://svn.apache.org/viewcvs/directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java?rev=387344&r1=387343&r2=387344&view=diff
==============================================================================
--- directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java (original)
+++ directory/branches/apacheds/1.0/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolProvider.java Mon Mar 20 15:31:05 2006
@@ -340,6 +340,10 @@
     private static final class ProtocolCodecFactoryImpl implements ProtocolCodecFactory
     {
         final Hashtable env;
+        
+        // Define two static members to avoid useless object constructions
+        static Asn1CodecEncoder encoder;
+        static Asn1CodecDecoder decoder;
 
 
         public ProtocolCodecFactoryImpl()
@@ -354,15 +358,25 @@
         }
 
 
-        public ProtocolEncoder getEncoder()
+        public synchronized ProtocolEncoder getEncoder()
         {
-            return new Asn1CodecEncoder( new MessageEncoder( env ) );
+        	if ( encoder == null )
+        	{
+        		encoder = new Asn1CodecEncoder( new MessageEncoder( env ) );
+        	}
+        	
+            return encoder;
         }
 
 
-        public ProtocolDecoder getDecoder()
+        public synchronized ProtocolDecoder getDecoder()
         {
-            return new Asn1CodecDecoder( new MessageDecoder( env ) );
+        	if ( decoder == null )
+        	{
+        		decoder = new Asn1CodecDecoder( new MessageDecoder( env ) );
+        	}
+        	
+            return decoder;
         }
     }