User: d_jencks
Date: 01/08/16 22:37:35
Modified: src/main/org/jboss/pool ObjectPool.java
Log:
preliminary fix of logging: more logging cleanup soon
Revision Changes Path
1.3 +64 -34 jbosspool/src/main/org/jboss/pool/ObjectPool.java
Index: ObjectPool.java
===================================================================
RCS file: /cvsroot/jboss/jbosspool/src/main/org/jboss/pool/ObjectPool.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ObjectPool.java 2001/07/02 03:20:08 1.2
+++ ObjectPool.java 2001/08/17 05:37:35 1.3
@@ -9,6 +9,8 @@
import java.util.HashSet;
import java.util.Iterator;
+import org.jboss.logging.log4j.JBossCategory;
+
/**
* A generic object pool. You must provide a PoolObjectFactory (or the class
* of a Java Bean) so the pool knows what kind of objects to create. It has
@@ -38,6 +40,8 @@
static {
collector.start();
}
+ private JBossCategory log =
(JBossCategory)JBossCategory.getInstance(ObjectPool.class);
+
private PoolObjectFactory factory;
private String poolName;
@@ -57,7 +61,7 @@
private int blockingTimeout = -1;// meaning forever
private boolean trackLastUsed = false;
private boolean invalidateOnError = false;
- private PrintWriter logWriter = null;
+ // private PrintWriter logWriter = null;
private Object resizeLock = new Object();
/**
@@ -156,7 +160,8 @@
* Gets a log writer used to record pool events.
*/
public PrintWriter getLogWriter() {
- return logWriter;
+ return null;
+ // return logWriter;
}
/**
@@ -166,9 +171,9 @@
* initialized.
*/
public void setLogWriter(PrintWriter writer) {
- if(objects != null)
+ /*if(objects != null)
throw new IllegalStateException(INITIALIZED);
- logWriter = writer;
+ logWriter = writer;*/ // ignored
}
/**
@@ -185,7 +190,7 @@
minSize = size;
if(maxSize != 0 && minSize > maxSize) {
maxSize = minSize;
- log("WARNING: pool max size set to "+maxSize+" to stay >= min size");
+ log.warn("WARNING: pool max size set to "+maxSize+" to stay >= min
size");
}
}
@@ -215,7 +220,7 @@
maxSize = size;
if(maxSize != 0 && minSize > maxSize) {
minSize = maxSize;
- log("WARNING: pool min size set to "+minSize+" to stay <= max size");
+ log.warn("WARNING: pool min size set to "+minSize+" to stay <= max
size");
}
}
@@ -493,7 +498,7 @@
throw new IllegalStateException("Cannot initialize more than once!");
deadObjects = new HashSet();
objects = new HashMap();
- factory.poolStarted(this, logWriter);
+ factory.poolStarted(this, null);//logWriter);
lastGC = System.currentTimeMillis();
int max = maxSize <= 0 ? minSize : Math.min(minSize, maxSize);
for(int i=0; i<max; i++)
@@ -564,10 +569,15 @@
rec.setInUse(true);
Object ob = rec.getObject();
result = factory.prepareObject(ob);
- if(result != ob) rec.setClientObject(result);
- if(result instanceof PooledObject)
+ if(result != ob) {
+ rec.setClientObject(result);
+ }
+ if(result instanceof PooledObject) {
((PooledObject)result).addPoolEventListener(this);
- log("Pool "+this+" gave out pooled object: "+result);
+ }
+ if (log.isTraceEnabled()) {
+ log.trace("Pool "+this+" gave out pooled object:
"+result);
+ }
return result;
} catch(ConcurrentModificationException e) {
// That's OK, just go on and try another object
@@ -589,7 +599,9 @@
return result;
if(shouldBlock) {
- log("Pool "+this+" waiting for a free object");
+ if (log.isTraceEnabled()) {
+ log.trace("Pool "+this+" waiting for a free object");
+ }
synchronized(this) {
try {
if (blockingTimeout > 0) {
@@ -604,8 +616,9 @@
break;
}
}
-
- log("Pool "+this+" couldn't find an object to return!");
+ if (log.isTraceEnabled()) {
+ log.trace("Pool "+this+" couldn't find an object to return!");
+ }
return result;
}
@@ -687,7 +700,7 @@
try {
factory.deleteObject(pooled);
} catch(Exception e) {
- log("Pool "+this+" factory ("+factory.getClass().getName()+"
delete error: "+e);
+ log.error("Pool "+this+" factory
("+factory.getClass().getName()+" delete error: "+e);
}
rec.close();
deadObjects.remove(object);
@@ -699,10 +712,14 @@
removed = false;
}
}
- if(removed)
- log("Pool "+this+" destroyed object "+object+".");
- else
- log("Pool "+this+" returned object "+object+" to the pool.");
+ if (log.isTraceEnabled()) {
+ if(removed) {
+ log.trace("Pool "+this+" destroyed object "+object+".");
+ }
+ else {
+ log.trace("Pool "+this+" returned object "+object+" to the pool.");
+ }
+ }
if(blocking) {
synchronized(this) {
notify();
@@ -802,7 +819,7 @@
try {
factory.deleteObject(pooled);
} catch(Exception e) {
- log("Pool "+this+" factory
("+factory.getClass().getName()+" delete error: "+e);
+ log.error("Pool "+this+" factory
("+factory.getClass().getName()+" delete error: "+e);
}
rec.close();
++count;
@@ -835,7 +852,7 @@
*/
private Object createNewObject(Object parameters, boolean forImmediateUse) {
Object ob = null;
- String message = null;
+ boolean traceEnabled = log.isTraceEnabled();
// Serialize creating new objects
synchronized(resizeLock) { // Don't let 2 threads add at the same time
if(maxSize == 0 || objects.size() < maxSize) {
@@ -847,29 +864,42 @@
if(forImmediateUse) {
Object result = factory.prepareObject(ob);
if(result != ob) rec.setClientObject(result);
- if(result instanceof PooledObject)
+ if(result instanceof PooledObject) {
((PooledObject)result).addPoolEventListener(this);
- message = "Pool "+this+" gave out new object: "+result;
+ }
+ if (traceEnabled) {
+ log.trace("Pool "+poolName+" gave out new object:
"+result);
+ }
ob = result;
- } else message = "Pool "+poolName+" created a new object: "+ob;
+ }
+ else {
+ if (traceEnabled) {
+ log.trace("Pool "+poolName+" created a new object:
"+ob);
+ }
+ }
objects = newMap;
- } else message = "Pool "+poolName+" factory "+factory+" unable to
create new object!";
- } else message = "Pool "+poolName+" is full
("+objects.size()+"/"+maxSize+")!";
+ }
+ else {
+ if (traceEnabled) {
+ log.trace("Pool "+poolName+" factory "+factory+" unable to
create new object!");
+ }
+ }
+ }
+ else {
+ if (traceEnabled) {
+ log.trace("Pool "+poolName+" is full
("+objects.size()+"/"+maxSize+")!");
+ }
+ }
}
- if(message != null)
- log(message);
return ob;
}
- private void log(String message) {
- if(logWriter != null)
- logWriter.println(message);
- }
}
class BeanFactory extends PoolObjectFactory {
private Class beanClass;
- private PrintWriter logger;
+ //private PrintWriter logger;
+ private JBossCategory log =
(JBossCategory)JBossCategory.getInstance(BeanFactory.class);
public BeanFactory(Class beanClass) {
try {
@@ -882,14 +912,14 @@
public void poolStarted(ObjectPool pool, PrintWriter log) {
super.poolStarted(pool, log);
- logger = log;
+ //logger = log;
}
public Object createObject(Object parameters) {
try {
return beanClass.newInstance();
} catch(Exception e) {
- logger.println("Unable to create instance of "+beanClass.getName()+":
"+e);
+ log.error("Unable to create instance of "+beanClass.getName()+": "+e);
}
return null;
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development