cvs commit: ws-xmlrpc/src/java/org/apache/xmlrpc WebServer.java

2004-06-29 Thread dlr
dlr 2004/06/29 22:53:39

  Modified:src/java/org/apache/xmlrpc Tag: XMLRPC_1_2_BRANCH
WebServer.java
  Log:
  Backported delta between CVS rev 1.25 and 1.26.
  
  * src/java/org/apache/xmlrpc/WebServer.java
addDefaultHandlers(): Changed code to avoid deprecated call.
  
  Submitted by: Ryan Bloom
  
  Revision  ChangesPath
  No   revision
  No   revision
  1.22.2.2  +3 -1  ws-xmlrpc/src/java/org/apache/xmlrpc/WebServer.java
  
  Index: WebServer.java
  ===
  RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/WebServer.java,v
  retrieving revision 1.22.2.1
  retrieving revision 1.22.2.2
  diff -u -u -r1.22.2.1 -r1.22.2.2
  --- WebServer.java1 May 2004 00:39:05 -   1.22.2.1
  +++ WebServer.java30 Jun 2004 05:53:39 -  1.22.2.2
  @@ -338,7 +338,9 @@
   // cool feature for applets.
   String url = http://www.mailtothefuture.com:80/RPC2;;
   addHandler(mttf, new XmlRpcClient(url));
  -addHandler(system, new SystemHandler(xmlrpc));
  +SystemHandler system = new SystemHandler();
  +system.addDefaultSystemHandlers();
  +addHandler(system, system);
   }
   
   /**
  
  
  


cvs commit: ws-xmlrpc/src/java/org/apache/xmlrpc WebServer.java XmlRpcServer.java

2004-04-30 Thread dlr
dlr 2004/04/30 17:40:47

  Modified:src/java/org/apache/xmlrpc WebServer.java XmlRpcServer.java
  Log:
  Corrected a leak in XmlRpcServer's worker count, and normalized
  concurrency maximums on XmlRpc.getMaxThreads().
  
  * src/java/org/apache/xmlrpc/XmlRpcServer.java
execute(InputStream, XmlRpcContext): Fix the possibility of
inaccurate tracking of the worker count which can be caused by a
XmlRpcWorker's execute() method throwing a AuthenticationFailed,
ParseFailed, or java.lang.Error.  Use a try/finally block to assure
that this leak condition is avoided, and that the worker count
accurately reflects the number of available workers.
  
getWorker(): Added JavaDoc.  Improved error message.
  
  * src/java/org/apache/xmlrpc/WebServer.java
getRunner(): Use the XmlRpc.getMaxThreads() method for the maximum
number of Runner instances, rather than a hardcoded value of 255.
Improved error message.
  
repoolRunner(Runner): Renamed from releaseRunner(), and JavaDoc'd.
  
Runner.handle(Socket): Added inline comment doc'ing reason for the
call to this.notify().
  
Runner.run(): Added inline comment doc'ing the reason for the
count and threadpool.size() checks.  Updated method name for
repoolRunner().
  
Connection.run(): Remove duplicate error output when XmlRpc.debug is
true.
  
  Issue: CollabNet PCN27955
  Submitted by: Daniel Ral and Jack Repenning
  
  Revision  ChangesPath
  1.24  +16 -6 ws-xmlrpc/src/java/org/apache/xmlrpc/WebServer.java
  
  Index: WebServer.java
  ===
  RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/WebServer.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -u -r1.23 -r1.24
  --- WebServer.java1 May 2003 16:53:15 -   1.23
  +++ WebServer.java1 May 2004 00:40:47 -   1.24
  @@ -601,19 +601,23 @@
   }
   catch (EmptyStackException empty)
   {
  -if (runners.activeCount ()  255)
  +int maxRequests = XmlRpc.getMaxThreads();
  +if (runners.activeCount()  XmlRpc.getMaxThreads())
   {
  -throw new RuntimeException(System overload);
  +throw new RuntimeException(System overload: Maximum number  +
  +   of concurrent requests ( +
  +   maxRequests + ) exceeded);
   }
   return new Runner();
   }
   }
   
   /**
  + * Put coderunner/code back into [EMAIL PROTECTED] #threadpool}.
*
  - * @param runner
  + * @param runner The instance to reclaim.
*/
  -void releaseRunner(Runner runner)
  +void repoolRunner(Runner runner)
   {
   threadpool.push(runner);
   }
  @@ -643,6 +647,7 @@
   }
   else
   {
  +// Wake the thread waiting in our run() method.
   this.notify();
   }
   }
  @@ -660,11 +665,13 @@
   
   if (count  200 || threadpool.size()  20)
   {
  +// We're old, or the number of threads in the pool
  +// is large.
   return;
   }
   synchronized(this)
   {
  -releaseRunner(this);
  +repoolRunner(this);
   try
   {
   this.wait();
  @@ -792,10 +799,13 @@
   }
   catch (Exception exception)
   {
  -System.err.println(exception);
   if (XmlRpc.debug)
   {
   exception.printStackTrace();
  +}
  +else
  +{
  +System.err.println(exception);
   }
   }
   finally
  
  
  
  1.36  +14 -5 ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcServer.java
  
  Index: XmlRpcServer.java
  ===
  RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcServer.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -u -r1.35 -r1.36
  --- XmlRpcServer.java 21 Oct 2002 13:08:50 -  1.35
  +++ XmlRpcServer.java 1 May 2004 00:40:47 -   1.36
  @@ -148,15 +148,22 @@
   public byte[] execute(InputStream is, XmlRpcContext context)
   {
   XmlRpcWorker worker = getWorker();
  -byte[] retval = worker.execute(is, context);
  -pool.push(worker);
  -return retval;
  +try
  +{
  +return worker.execute(is, context);
  +}
  +finally
  +{
  +pool.push(worker);
  +}
   }
   
   /**
* Hands out