[jboss-jira] [JBoss JIRA] Created: (JBREM-1170) System.gc() should not call in ServerInvokerCallbackHandler
ryu ken (JIRA)
jira-events at lists.jboss.org
Fri Nov 20 02:52:29 EST 2009
System.gc() should not call in ServerInvokerCallbackHandler
-----------------------------------------------------------
Key: JBREM-1170
URL: https://jira.jboss.org/jira/browse/JBREM-1170
Project: JBoss Remoting
Issue Type: Quality Risk
Security Level: Public (Everyone can see)
Components: callbacks
Affects Versions: 2.2.2.SP11
Reporter: ryu ken
It seems System.gc() will be call when Memory Low has been detected.
In fact, calling System.gc() may cause performance problems.
handleCallback():
// need to check if should persist callback instead of keeping in memory
if(shouldPersist())
{
try
{
persistCallback(callback);
synchronized (callbacks)
{
callbacks.notify();
}
callback = null;
// try to help out with the amount of memory usuage
new Thread()
{
public void run()
{
System.gc();
}
}.start();
}
catch(IOException e)
{
log.error("Unable to persist callback", e);
throw new HandleCallbackException("Unable to persist callback and will not " +
"be able to deliver.", e);
}
}
getPersistedCallbacks():
if(isMemLow())
{
new Thread()
{
public void run()
{
System.gc();
}
}.start();
break;
}
isMemLow():
Runtime runtime = Runtime.getRuntime();
long max = runtime.maxMemory();
long total = runtime.totalMemory();
long free = runtime.freeMemory();
float percentage = 100 * free / total;
if(max == total && memPercentCeiling >= percentage)
{
return true;
}
else
{
return false;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list