Help wiv a thread

i basically want beanschedulerDaily and beanschedulerAudit to run at the same time,
however there are problems with calling them can anyone suggest as to why this wont work,
on compile the following lines give errors:
Thread t1 = new Thread(new beanschedulerAudit());
Thread t2 = new Thread(new beanschedulerDaily());
any suggestions guys
* beanscheduler.java
* Created on 28 May 2004, 16:19
//package beanschedule;
import java.util.*;
import java.io.*;
import java.text.*;
//import javaParse.*;
* @author andrew.thompson
public class beanscheduler extends Thread {
Timer timer;
public beanscheduler(){       
/** Creates a new instance of beanscheduler */
class RemindTask5 extends TimerTask {
public void run() {
boolean auditerror = false;
File audit = new File("audit");
          if (audit.exists()) {
System.out.println("Error audit file present successful transfer from RDS has completed");
if(auditerror == true){
System.out.println("Error has been resolved");
auditerror = false;
          else {
               System.out.println("Error audit file not present");
auditerror = true;
System.out.println("Run 5 Application " + new Date());
// timer.cancel(); //Terminate the timer thread
class RemindTask24 extends TimerTask {
public void run() {           
boolean error = false;
javaParse jp = new javaParse();
File f1= new File("H:\\upDate\\RDS_PC.DAT");
          File f2= new File("H:\\upDate\\STDCLI.DAT");
          File f3= new File("H:\\upDate\\PERMIS.DAT");
          if (f1.exists() && f2.exists() && f3.exists()){               
               System.out.println("All files are present a sucessful transfer from the RDS has completed");
timer = new Timer();
if (error == true) {
System.out.println("Error has been resolved");
error = false;
jp.javaParseRDSPC();
jp.javaParseSTDCLI();
jp.javaParsePERMIS();
updateDb ud = new updateDb();
ud.start();
          else {
if (f1.exists() && f2.exists()){
System.out.println("Error missing file3, an incomplete transfer from the RDS has occured");
else if (f1.exists() && f3.exists()){
System.out.println("Error missing file2, an incomplete transfer from the RDS has occured");
else if (f2.exists() && f3.exists()){
System.out.println("Error missing file1, an incomplete transfer from the RDS has occured");
else {
System.out.println("Error no files found, an incomplete transfer from the RDS has occured");
error = true;
public void beanschedulerAudit() {
int minutes = 5;
// notifys user that a thread has started
System.out.println("Thread has started");
// sets the the timer to a new instance of the timer class
timer = new Timer();
// if the 5 minute interval jumps to the remindtask5 method else jumps to the
// remindtask24 method.
timer.scheduleAtFixedRate(new RemindTask5(), minutes*60000, minutes*60000);
public void beanschedulerDaily() {
int minutes = 1440;
// notifys user that a thread has started
System.out.println("Thread has started");
// sets the the timer to a new instance of the timer class
timer = new Timer();
// if the 5 minute interval jumps to the remindtask5 method else jumps to the
// remindtask24 method.
timer.scheduleAtFixedRate(new RemindTask24(), minutes*60000, minutes*60000);
* @param args the command line arguments
public static void main(String[] args) {
System.out.println("Program Starts at " + new Date());
// for 5 minutes updates
Thread t1 = new Thread(new beanschedulerAudit());
// for 24 hour updates 1440 mins = 24 hours
Thread t2 = new Thread(new beanschedulerDaily());
t1.start();
t2.start();

You can't instatiate a method. You need to pass an instance of Runnable to the constructor of Thread, and by the looks of your class already extends Thread so you can say new beanscheduler().start()

Similar Messages

  • Where should one ask for help with a thread   ???

    Having posted a link to this thread because the op needed someone to check a site in Panther.... and because not so long ago I read here that this was the place to ask for such help.....
    I now find the my request has been removed... musta offended the tou of course.
    Sooo - how should a person try to get help with a thread in future? - we ain't all l4's and have a lounge to play in.

    Interesting question. This forum was available for this type of request at certain points in Discussions' history, and it has often been recommended that users post issues like yours here.
    Technically, as per the red print at the top of this forum, it is inappropriate to use this forum for that purpose. In the case you cite, I'd recommend putting a new topic in to the Safari forum with a specific request for the help that is required in the Subject line. If you do it that way, you will most likely reach more users who will be able to help you.
    Good luck.

  • Need help with STUCK Threads.  What's causing them?

    In our production environment, we have a soa suite cluster with 3 nodes. All 3 of the servers keep turning up stuck and hogging threads, and eventually they all grind to a halt where I can't even view composite instances through em. There is a bpel process that is using a dbadapter to poll for records every 5 seconds and then performs some service call outs and other dbadapters. This process is generating thousands of instances a day and I think it is the culprit. If I view the logs, I see one of the dbadapters that it calls out to fails occasionally with a PK violation. I looked at the developer's code, and they have no error handling in the process at all. In the logs, there will the a hit for the PK violation, then about 10 minutes later the a STUCK thread gets logged(the configured timeout is 600 seconds, or 10 minutes). Would not handling an error in a BPEL process hog/STUCK a thread? I need to be able to show what code is causing the issue so I can have a resolution path.
    I also see a note in the trace about something holding a lock:
    Holding lock: oracle.jdbc.driver.T4CConnection@1fbc3486[thin lock]....would that be an un-rolled back transaction?
    Here is the dump of the STUCK thread. Any help is greatly appreciated. Thanks!
    <Aug 5, 2011 10:30:02 AM EDT> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "634" seconds working on the request "oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    Thread-517 "[STUCK] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)'" <alive, in native, suspended, priority=1, DAEMON> {
    jrockit.net.SocketNativeIO.readBytesPinned(SocketNativeIO.java:???)
    jrockit.net.SocketNativeIO.socketRead(SocketNativeIO.java:24)
    java.net.SocketInputStream.socketRead0(SocketInputStream.java:???)
    java.net.SocketInputStream.read(SocketInputStream.java:107)
    oracle.net.nt.MetricsEnabledInputStream.read(TcpNTAdapter.java:553)
    oracle.net.ns.Packet.receive(Packet.java:249)
    oracle.net.ns.DataPacket.receive(DataPacket.java:94)
    oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:168)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:113)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:96)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:81)
    oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:120)
    oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:75)
    oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1081)
    oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1062)
    oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:588)
    oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:70)
    oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:854)
    oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:918)
    oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1252)
    oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3541)
    oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3605)
    ^-- Holding lock: oracle.jdbc.driver.T4CConnection@1fbc3486[thin lock]
    oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1667)
    weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:123)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:887)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:541)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
    org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:521)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:202)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:254)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelect(DatasourceCallQueryMechanism.java:245)
    org.eclipse.persistence.queries.DataReadQuery.executeNonCursor(DataReadQuery.java:188)
    org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery(DataReadQuery.java:141)
    org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:603)
    org.eclipse.persistence.queries.DataReadQuery.execute(DataReadQuery.java:115)
    org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:589)
    org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2898)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1218)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1190)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1176)
    org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:378)
    org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:701)
    weblogic.deployment.TransactionalEntityManagerProxyImpl$QueryImpl.getSingleResult(TransactionalEntityManagerProxyImpl.java:232)
    com.collaxa.cube.persistence.dao.impl.jpa.JpaCubeInstanceDaoImpl.getNumberOfInstances(JpaCubeInstanceDaoImpl.java:439)
    oracle.fabric.CubeServiceEngine.getNumberOfComponentInstances(CubeServiceEngine.java:1962)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getNumberOfComponentInstances(FacadeFinderBeanImpl.java:1618)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getComponentSnapShot(FacadeFinderBeanImpl.java:1653)
    sun.reflect.GeneratedMethodAccessor5852.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:575)
    com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.jee.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:104)
    oracle.security.jps.ee.ejb.JpsAbsInterceptor$1.run(JpsAbsInterceptor.java:88)
    oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:299)
    oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:406)
    oracle.security.jps.wls.JpsWeblogicEjbInterceptor.runJaasMode(JpsWeblogicEjbInterceptor.java:61)
    oracle.security.jps.ee.ejb.JpsAbsInterceptor.intercept(JpsAbsInterceptor.java:81)
    oracle.security.jps.ee.ejb.JpsInterceptor.intercept(JpsInterceptor.java:101)
    sun.reflect.GeneratedMethodAccessor863.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:575)
    com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    com.bea.core.repackaged.springframework.jee.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:66)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:102)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:22)
    com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:49)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:86)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:102)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:151)
    $Proxy309.getComponentSnapShot(Unknown Source)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.getComponentSnapShot(FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java:1604)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl_WLSkel.invoke(Unknown Source)
    weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:567)
    weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
    weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:425)
    weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:117)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:198)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:165)
    >
    <Aug 5, 2011 10:30:02 AM EDT> <Notice> <Diagnostics> <BEA-320068> <Watch 'StuckThread' with severity 'Notice' on server 'soa_server1' has triggered at Aug 5, 2011 10:30:02 AM EDT. Notification details:
    WatchRuleType: Log
    WatchRule: (SEVERITY = 'Error') AND (MSGID = 'BEA-000337')
    WatchData: DATE = Aug 5, 2011 10:30:02 AM EDT SERVER = soa_server1 MESSAGE = [STUCK] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "634" seconds working on the request "oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    Thread-517 "[STUCK] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)'" <alive, in native, suspended, priority=1, DAEMON> {
    jrockit.net.SocketNativeIO.readBytesPinned(SocketNativeIO.java:???)
    jrockit.net.SocketNativeIO.socketRead(SocketNativeIO.java:24)
    java.net.SocketInputStream.socketRead0(SocketInputStream.java:???)
    java.net.SocketInputStream.read(SocketInputStream.java:107)
    oracle.net.nt.MetricsEnabledInputStream.read(TcpNTAdapter.java:553)
    oracle.net.ns.Packet.receive(Packet.java:249)
    oracle.net.ns.DataPacket.receive(DataPacket.java:94)
    oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:168)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:113)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:96)
    oracle.net.ns.NetInputStream.read(NetInputStream.java:81)
    oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:120)
    oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:75)
    oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1081)
    oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1062)
    oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:588)
    oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:70)
    oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:854)
    oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:918)
    oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1252)
    oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3541)
    oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3605)
    ^-- Holding lock: oracle.jdbc.driver.T4CConnection@1fbc3486[thin lock]
    oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1667)
    weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:123)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:887)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:541)
    org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
    org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:521)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:202)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:254)
    org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelect(DatasourceCallQueryMechanism.java:245)
    org.eclipse.persistence.queries.DataReadQuery.executeNonCursor(DataReadQuery.java:188)
    org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery(DataReadQuery.java:141)
    org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:603)
    org.eclipse.persistence.queries.DataReadQuery.execute(DataReadQuery.java:115)
    org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:589)
    org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2898)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1218)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1190)
    org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1176)
    org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:378)
    org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:701)
    weblogic.deployment.TransactionalEntityManagerProxyImpl$QueryImpl.getSingleResult(TransactionalEntityManagerProxyImpl.java:232)
    com.collaxa.cube.persistence.dao.impl.jpa.JpaCubeInstanceDaoImpl.getNumberOfInstances(JpaCubeInstanceDaoImpl.java:439)
    oracle.fabric.CubeServiceEngine.getNumberOfComponentInstances(CubeServiceEngine.java:1962)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getNumberOfComponentInstances(FacadeFinderBeanImpl.java:1618)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getComponentSnapShot(FacadeFinderBeanImpl.java:1653)
    sun.reflect.GeneratedMethodAccessor5852.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:575)
    com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.jee.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:104)
    oracle.security.jps.ee.ejb.JpsAbsInterceptor$1.run(JpsAbsInterceptor.java:88)
    oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:299)
    oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:406)
    oracle.security.jps.wls.JpsWeblogicEjbInterceptor.runJaasMode(JpsWeblogicEjbInterceptor.java:61)
    oracle.security.jps.ee.ejb.JpsAbsInterceptor.intercept(JpsAbsInterceptor.java:81)
    oracle.security.jps.ee.ejb.JpsInterceptor.intercept(JpsInterceptor.java:101)
    sun.reflect.GeneratedMethodAccessor863.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:575)
    com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    com.bea.core.repackaged.springframework.jee.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:66)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:102)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:22)
    com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:49)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:86)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:102)
    com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:151)
    $Proxy309.getComponentSnapShot(Unknown Source)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.getComponentSnapShot(FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java:1604)
    oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl_WLSkel.invoke(Unknown Source)
    weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:567)
    weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
    weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:425)
    weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:117)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:198)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:165)
    SUBSYSTEM = WebLogicServer USERID = <WLS Kernel> SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '96' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-000337 MACHINE = soaprod TXID = CONTEXTID = f5d0b85a929630a2:6eada0f7:1304e0a2bdc:-7ffb-00000000017e1605 TIMESTAMP = 1312554602698
    WatchAlarmType: AutomaticReset
    WatchAlarmResetPeriod: 600000
    >
    Edited by: Brutus35 on Aug 5, 2011 8:04 AM

    my impression is that you have trouble on the DB,
    monitor the sessions to see if there is some table locked, and increase the number of processes on the DB
    you can use SQLDeveloper for that
    anyway your TX should rollback after some time, check that you have a timeout in place, it's better to rollback a TX than having the entire server crash

  • Help needed on threads!!!

    Hello All,
    Following is the scenario that I'm trying to do.
    Thread_A: puts the data/messages into Queue A (I'm using linked list as the data structure)
    Thread_B - pulls the data/messages out from Queue A .
    So far I have implemented the following
    Class A implements Runnable
    {   LinkedList  queue A  = new LinkedList ();
    Thread_ A = new THread (this)
    Thread_A.start();
    run{
    Putting the messages into QueueA;
    classB.copyQueue(queueA); //this method is defined in classB
    Class B implements Runnable
    {   LinkedList  queueB   = new LinkedList ();
    Thread_ B = new THread (this)
    Thread_B.start();
    copyQueue(linkedList A){
    queueB = A;
    run{
    pull the messages from QueueB;
    I hope I have explanined it clearly. . Is my design approach ok so far.? somehow I don't get that feelng. THought I will consult the experts. I'm new to java. Please excuse me if this is a silly question. Please help.
    Thanks.

    Well, there's no reason for each class to have it's own reference to the queue, for a start. Simpler to give B a reference to the instance of class A.
    You need to guard the access to the queue with synchronized and use the wait/notify methods to make threadB wait if the queue is empty.
    Easiest to stick a pair of syncrhonized methods into class A like:
    public synchronized void addToQueue(Object item) {
         if(queueA.isEmpty())
             notifyAll();   // if queue was empty wake the consumer thread
         queueA.add(item);
    public synchronized Object takeFromQueue() throws InteruptedException {
        while queueA.isEmpty()
           wait();
        return queueA.removeFirst();
         }Thread B calls takeFormQueue to get each item, which will cause it to wait until there's somthing to take.

  • Help on stuck thread

    Hi, From my server log I noticed that there are some stuck threads. After looked at the thread dump thread 18 is blocking. MainPortalServlet.java is extends PortalServlet and line 96 is super.service(request,response); Please help me to analyse why it is blocking. Thanks.
    "ExecuteThread: '20' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x0090e6b0 nid=0x3b waiting for monitor entry [0x600fd000..0x600ffc28]
         at com.bea.wlw.netui.script.el.util.ParseUtils.parse(ParseUtils.java:100)
         - waiting to lock <0x8d3a3f18> (a com.bea.wlw.netui.script.el.util.ParseUtils$Cache)
         at com.bea.wlw.netui.script.el.ExpressionEvaluatorImpl.containsExpression(ExpressionEvaluatorImpl.java:239)
         at com.bea.wlw.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:295)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:402)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:691)
         at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
         at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at com.bea.wlw.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1786)
         at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:561)
         at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.processActionInternal(ScopedContentCommonSupport.java:121)
         at com.bea.portlet.adapter.scopedcontent.PageFlowStubImpl.processAction(PageFlowStubImpl.java:98)
         at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:154)
         at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:113)
         at com.bea.netuix.servlets.controls.content.NetuiContent.handlePostbackData(NetuiContent.java:228)
         at com.bea.netuix.nf.ControlLifecycle$3.visit(ControlLifecycle.java:171)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:356)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:126)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:105)
         at com.bea.netuix.nf.Lifecycle.runInbound(Lifecycle.java:173)
         at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:137)
         at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:324)
         at com.bea.netuix.servlets.manager.UIServlet.processControlTree(UIServlet.java:220)
         at com.bea.netuix.servlets.manager.PortalServlet.doPost(PortalServlet.java:820)
         at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:150)
         at com.cd.servlets.portal.MainPortalServlet.service(MainPortalServlet.java:96)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    "ExecuteThread: '19' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x0090dab8 nid=0x3a runnable [0x601fb000..0x601ffc28]
         at java.util.HashMap.getEntry(HashMap.java:361)
         at java.util.LinkedHashMap.get(LinkedHashMap.java:266)
         at com.bea.wlw.netui.script.el.util.ParseUtils.parse(ParseUtils.java:84)
         at com.bea.wlw.netui.script.el.util.ParseUtils.evaluate(ParseUtils.java:123)
         at com.bea.wlw.netui.script.el.ExpressionEvaluatorImpl.evaluateStrict(ExpressionEvaluatorImpl.java:87)
         at com.bea.wlw.netui.tags.AbstractBaseTag.evaluateExpressionInternal(AbstractBaseTag.java:573)
         at com.bea.wlw.netui.tags.AbstractBaseTag.evaluateExpression(AbstractBaseTag.java:362)
         at com.bea.wlw.netui.tags.databinding.script.GetData.doEndTag(GetData.java:249)
         at jsp_servlet._portlets.___portlet1._jspService(_portlet1.jsp:27)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.wlw.netui.pageflow.PageFlowJspFilter.doFilter(PageFlowJspFilter.java:250)
         - locked <0x78ccf6c8> (a portlets.Portlet1Controller)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:652)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:431)
         at com.bea.wlw.netui.pageflow.scoping.internal.ScopedRequestDispatcher.include(ScopedRequestDispatcher.java:120)
         at com.bea.netuix.servlets.controls.content.JspContent.beginRender(JspContent.java:534)
         at com.bea.netuix.servlets.controls.content.NetuiContent.beginRender(NetuiContent.java:425)
         at com.bea.netuix.nf.ControlLifecycle$1.visit(ControlLifecycle.java:495)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:543)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:247)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:105)
         at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:356)
         at com.bea.netuix.nf.UIControl.render(UIControl.java:536)
         at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:405)
         at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:123)
         at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:58)
         at jsp_servlet._framework._skeletons._cd.__flowlayout._jspService(flowlayout.jsp:30)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:646)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:431)
         at com.bea.netuix.servlets.controls.JspRenderer.renderAlt(JspRenderer.java:194)
         at com.bea.netuix.servlets.controls.JspRenderer.beginRender(JspRenderer.java:96)
         at com.bea.netuix.nf.ControlLifecycle$1.visit(ControlLifecycle.java:491)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:543)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:247)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:105)
         at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:356)
         at com.bea.netuix.nf.UIControl.render(UIControl.java:536)
         at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:405)
         at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:123)
         at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag(RenderChild.java:58)
         at jsp_servlet._framework._skeletons._cd.__flowlayout._jspService(flowlayout.jsp:30)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:646)
         at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:431)
         at com.bea.netuix.servlets.controls.JspRenderer.renderAlt(JspRenderer.java:194)
         at com.bea.netuix.servlets.controls.JspRenderer.beginRender(JspRenderer.java:96)
         at com.bea.netuix.nf.ControlLifecycle$1.visit(ControlLifecycle.java:491)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:543)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:554)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:247)
         at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:204)
         at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:153)
         at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:324)
         at com.bea.netuix.servlets.manager.UIServlet.processControlTree(UIServlet.java:220)
         at com.bea.netuix.servlets.manager.PortalServlet.doPost(PortalServlet.java:820)
         at com.bea.netuix.servlets.manager.PortalServlet.doGet(PortalServlet.java:671)
         at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:147)
         at com.cd.servlets.portal.MainPortalServlet.service(MainPortalServlet.java:116)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    "ExecuteThread: '18' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x0090cec0 nid=0x39 runnable [0x602fd000..0x602ffc28]
         at java.util.LinkedHashMap.transfer(LinkedHashMap.java:224)
         at java.util.HashMap.resize(HashMap.java:452)
         at java.util.LinkedHashMap.addEntry(LinkedHashMap.java:399)
         at java.util.HashMap.put(HashMap.java:392)
         at com.bea.wlw.netui.script.el.util.ParseUtils.parse(ParseUtils.java:100)
         - locked <0x8d3a3f18> (a com.bea.wlw.netui.script.el.util.ParseUtils$Cache)
         at com.bea.wlw.netui.script.el.ExpressionEvaluatorImpl.containsExpression(ExpressionEvaluatorImpl.java:239)
         at com.bea.wlw.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:295)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:402)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:691)
         at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
         at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at com.bea.wlw.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1786)
         at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:561)
         at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.processActionInternal(ScopedContentCommonSupport.java:121)
         at com.bea.portlet.adapter.scopedcontent.PageFlowStubImpl.processAction(PageFlowStubImpl.java:98)
         at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:154)
         at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:113)
         at com.bea.netuix.servlets.controls.content.NetuiContent.handlePostbackData(NetuiContent.java:228)
         at com.bea.netuix.nf.ControlLifecycle$3.visit(ControlLifecycle.java:171)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:356)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:366)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:126)
         at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:105)
         at com.bea.netuix.nf.Lifecycle.runInbound(Lifecycle.java:173)
         at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:137)
         at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:324)
         at com.bea.netuix.servlets.manager.UIServlet.processControlTree(UIServlet.java:220)
         at com.bea.netuix.servlets.manager.PortalServlet.doPost(PortalServlet.java:820)
         at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:150)
         at com.cd.servlets.portal.MainPortalServlet.service(MainPortalServlet.java:96)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

    Hi user9503787,
    Can you please confirm if the Weblogic instance / java process you took the Thread Dump from was showing high CPU utilization?
    Your Thread Dump data is quite interesting and a perfect example of a non Thread safe HashMap combined with a read/write race condition:
    Thread #23 (hanging for 600 seconds+) is showing a potential infinite looping condition in at java.util.HashMap.getEntry(HashMap.java:361)
    Thread #22 (hanging for 600 seconds+) is showing a potential infinite looping condition while performing a resize() following a put() operation
    Weblogic Portal has some known issues which regards to usage of non Thread safe HashHap data structures; which under load can cause infinite looping and sharp surge of CPU (due to corruption of the internal HashMap index preventing exiting the internal loop); ultimately hanging the whole JVM.
    We had the same issue for one of our Weblogic Portal 10.0 production environment and Oracle provided a patch (via Collections.synchronizedMap() ).
    Please open a SR and Oracle, share these 2 Threads and discuss with the engineer about a patch / know issues regarding non Thread safe HashMap and infinite looping.
    Regards,
    P-H
    http://javaeesupportpatterns.blogspot.com/

  • URGENT- PLEASE HELP: java.lang.threads and BC4J

    Hi,
    according to my issue "no def found for view" in the same titled thread I'm wondering how you would implement asynchronous calls of methods that use BC4J to update a couple of data.
    To be more precise:
    A requirement of our software is to start an update database job, which can take a couple of minutes/hours, from the web browser. Before it will be executed the logged-in user receives a notification that this batch job has been started.
    I dont't want to use JMS overhead and MD Beans for this simple requirement, therefore I implemented a class that extends java.lang.Thread and put all the update codings within the run method. After having called the start-method of the thread I get a JBO-25022(No XML file found) error when I try to set a new value for an attribute of the row. The row consists of attributes which belong to four entity objects that mus be updated.
    When calling the run method directly, everything works fine.
    My questions:
    * do you know any workaround how to make the xml files
    reachable?
    * how would you implement anschronous calls of long time-
    consuming jobs?
    * is this a bug of BC4J?
    Any help, tip, hint is really appreciated.
    Stefan

    Arno,
    many thanks for your reply:
    Here is an excerpt of the source code of my thread "Aenderungsdienst":
    public class Aenderungsdienst extends java.lang.Thread
    private SviAdministrationModuleImpl mSviModul;
    // Application module that contains view object
    // IKViewImpl
    public Aenderungsdienst(SviAdministrationModuleImpl aSviModul)
    mSviModul = aSviModul;
    public void run()
    ausfuehrenAenderungsdienst(mAenderungsdienstNr); <--error within this methode
    private int ausfuehrenAenderungsdienst(String aAenderungsdienstNr)
    int rAnzahlSaetze = 0;
    try
    IkViewImpl aenderungen = mSviModul.getIkView();
    aenderungen.suchenAenderungssaetze(aAenderungsdienstNr); <-- method within View Object Impl that executes a query with customized where-clauses
    if ((rAnzahlSaetze = aenderungen.getRowCount()) > 0)
    IkViewRowImpl ik = null;
    while (aenderungen.hasNext())
    ik = (IkViewRowImpl) aenderungen.next();
    ik.setBestandsstatus("B"); <-- error occurs here when setting the status of a current row in my rowset to "B"
    mSviModul.getTransaction().postChanges();
    mSviModul.getTransaction().commit();
    catch (Exception e)
    e.printStackTrace();
    mSviModul.getTransaction().rollback();
    //todo: Verarbeitungsprotokoll erstellen
    return rAnzahlSaetze;
    This thread will be called by the application module "sviAdministrationModuleImpl":
    public void ausfuehrenAenderungsdienst(String
    aAenderungsdienstNr)
    Aenderungsdienst aenderungsdienst = new
    Aenderungsdienst(this);
    aenderungsdienst.setAenderungsdienstNr
    (aAenderungsdienstNr);
    aenderungsdienst.start();
    Using the start() method of the thread causes this exception:
    [653] No xml file: /hvbg/svi/model/businessobjects/businessobjects.xml, metaobj = hvbg.svi.model.businessobjects.businessobjects
    [654] Cannot Load parent Package : hvbg.svi.model.businessobjects.businessobjects
    [655] Business Object Browsing may be unavailable
    [656] No xml file: /hvbg/svi/model/businessobjects/IK_Inlandsbankverb.xml, metaobj = hvbg.svi.model.businessobjects.IK_Inlandsbankverb
    09.03.2004 10:27:41 hvbg.common.businessobjects.HvbgEntityImpl setAttributeInternal
    SCHWERWIEGEND: Fehler beim Setzen des Attributs 1 im Entity Objekt: JBO-25002: Definition hvbg.svi.model.businessobjects.IK_Inlandsbankverb vom Typ Entitätszuordnung nicht gefunden.
    09.03.2004 10:27:42 hvbg.svi.model.dienste.Aenderungsdienst ausfuehrenAenderungsdienst
    SCHWERWIEGEND: Beim Ausführen des Aenderungsdienstes 618 trat während der DB-Aktualisierung ein schwerer Fehler auf:
    JBO-25002: Definition hvbg.svi.model.businessobjects.IK_Inlandsbankverb vom Typ Entitätszuordnung nicht gefunden.
    oracle.jbo.NoDefException: JBO-25002: Definition hvbg.svi.model.businessobjects.IK_Inlandsbankverb vom Typ Entitätszuordnung nicht gefunden.
         at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:328)
         at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:268)
         at oracle.jbo.server.MetaObjectManager.findMetaObject(MetaObjectManager.java:649)
         at oracle.jbo.server.EntityAssociation.findEntityAssociation(EntityAssociation.java:98)
         at oracle.jbo.server.AssociationDefImpl.resolveEntityAssociation(AssociationDefImpl.java:725)
         at oracle.jbo.server.AssociationDefImpl.getEntityAssociation(AssociationDefImpl.java:135)
         at oracle.jbo.server.AssociationDefImpl.hasContainer(AssociationDefImpl.java:546)
         at oracle.jbo.server.AssociationDefImpl.getContainer(AssociationDefImpl.java:468)
         at oracle.jbo.server.EntityImpl.getContainer(EntityImpl.java:1573)
         at oracle.jbo.server.EntityImpl.setValidated(EntityImpl.java:1649)
         at oracle.jbo.server.EntityImpl.setAttributeValueInternal(EntityImpl.java:2081)
         at oracle.jbo.server.EntityImpl.setAttributeValue(EntityImpl.java:1985)
         at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:1700)
         at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:946)
         at hvbg.common.businessobjects.HvbgEntityImpl.setAttributeInternal(HvbgEntityImpl.java:56)
         at hvbg.svi.model.businessobjects.IKImpl.setBestandsstatus(IKImpl.java:174)
         at hvbg.svi.model.businessobjects.IKImpl.setAttrInvokeAccessor(IKImpl.java:770)
         at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:859)
         at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:1108)
         at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:1019)
         at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1047)
         at hvbg.svi.model.dataviews.IkViewRowImpl.setBestandsstatus(IkViewRowImpl.java:264)
         at hvbg.svi.model.dienste.Aenderungsdienst.ausfuehrenAenderungsdienst(Aenderungsdienst.java:337)
         at hvbg.svi.model.dienste.Aenderungsdienst.run(Aenderungsdienst.java:290)
    Using run(), everything works perfectly.
    The view object IKView consists of four entity objects which are linked by associations. There exists an association between the entity objects ik and inlandbankverb. The xml-file for the association object is named "ik_inlandsbankverb.xml". It seems so that this definition could not be found when calling my thread in asynchronous (via start()-method call) mode.
    Is this a bug of JDeveloper?
    Thanks in advance,
    Stefan

  • Re: Help me with THREADS !

    Look at the Thread class in the help docs. It's pretty easy to follow and gives 2 different ways to start threads. As for managing them, you could add observers to your thread object or event listeners (see Observer/Observable & Event/Key Event in documentation).

    You write a new Class, lets say CopyThread.java which extends Thread. This class have to implement the run method
    public void run() {}Within this run method you start a endless loop (that tests a flag if it should run again)
    while(doRun)  {
    try {
    Thread.sleep(1000 * 60 * 10); // 10 minutes of inactivity
    // list error files
    File[] files = errorDir.listFiles();
    // try to copy all files
    for(File f : files)
    // copy
    catch(InterruptedException ie) {
    doRun = false;
    }This loop will try to copy all files in the errorDir every 10 minutes.
    You can start this Thread when your App starts, it runs in the Background.
    Start it like this:
    CopyThread ct = new CopyThread();
    ct.start();If you want to "stop" the Thread just set the flag to false ct.setDoRun(false).
    This will stop it within the next 10 minutes, if you need to "stop" it immidiately call ct.interrupt(). This will cause an InterruptedException that is caught in the loop and the run method will be left, so the Thread stops. Dont call Thread.stop().

  • Helpful posts and threads

    I am trying to make some sense of this and can't. Some threads that have a Green Star adjacent to them also indicate which post is either "Helpful" (yellow star) and which is the one that "Solved" (green star) the problem. But then there are other threads that indicate the Green star and when you take a look at the individual posts, there are no stars anywhere. Is there logic to this or is this a bug? Is there a way for us to find out which post is the one deserving of a green star?
    Patrick

    854/3300
    Hi Patrick,
    You may even find also a thread with the "Solved" star awarded to somebody, but with no "Answered" adjacent green star...
    So no, there is no certain way to find which post, especially considering sometimes stars can be awarded too soon, before a better answer comes "too late", or even sometimes stars can be mistakenly awarded to wrong answers.
    Of course the system generally works, but for a given question that you are not sure of, the best way is to read the whole thread.
    Axl

  • Help with Java Threads

    Hello,
    Can anyone help with what I'm trying to do:
    I would like to create a thread such as:
    Database connection successful....
    where the '...' keep moving up. So as long as there is a database connection the '...'s should keep moving like so:
    ...... then back to:
    Does that make sense?
    Thanks
    am328

    What you want to do if really very simple...
    Why don't you first write a simple loop that generates your '.'s. Once you get that working, wrap the loop inside a thread that checks for a database connection.

  • Help-- build a Thread to manage Client

    Login: it sends to Server a string= "CONNECTING" and Server will send a string = "CONNECTED" then EchoClient (is a thread which manage a connection from the outside) will call a new thread(ManageClient) with a new port to make a seperate connection.
    Problem... while running Login and click the button after run EchoClient, there is no respond
    Maybe it's too long.. Sorry and thanks for running my code and helping me
    Login class
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    public class Login extends JFrame {
         public ChatFrame chatFrame;
         private final int CONNECTED = 1;
         private final int CONNECTING = 11;
         private Socket connectSocket = null;
         BufferedReader in = null;
         PrintWriter out = null;
          * @param args
         public Login() {
              // TODO Auto-generated method stub
              setSize(50, 150);
              JButton loginButton = new JButton("Login");
              JPanel p = new JPanel();
              p.setLayout(new FlowLayout());
              p.add(loginButton);
              add(p);
    //Wait and listen the line from server
              Thread t = new Thread() {
                   public void run() {
                        try {
                             Socket connectSocket = new Socket("localhost", 903);
                             in = new BufferedReader(new InputStreamReader(connectSocket
                                       .getInputStream()));
                             out = new PrintWriter(connectSocket.getOutputStream());
                             String stringLine = in.readLine();
                             if (stringLine == "CONNECTED") {
                                  int port = in.read();
                                  chatFrame = new ChatFrame(port);
                                  chatFrame
                                            .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                  chatFrame.show();
                                  connectSocket.close();
                        } catch (Exception e) {
              t.start();
              //click Login button and send "CONNECTING"
              loginButton.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent e) {
                        try {                         
                             out.print("CONNECTING");
                             System.out.print("send ");
                        } catch (Exception exp) {
                             exp.printStackTrace();
         public static void main(String[] args) {
              Login login = new Login();
              login.show();
              login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    EchoClient class
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Random;
    public class EchoClient extends Thread {
         private ServerSocket listenSocket = null;
         private Socket manageSocket = null;
         private int[] port = new int[9999];
         private BufferedReader in;
         private PrintWriter out;
         private int line;
         private int count;
         //private ClientNode[] clientArray = new ClientNode[9999];
         private ManageClient[] manageClient;
         private final int CONNECTED = 1;
         private final int CONNECTING = 11;
         private final int DISCONECTED = 2;
         public void run() {
              try {
                   //manageClient = new ManageClient[9999];
                   listenSocket = new ServerSocket(903);
                   manageSocket = listenSocket.accept();
                   while (true) {
                        in = new BufferedReader(new InputStreamReader(manageSocket
                                  .getInputStream()));
                        out = new PrintWriter(manageSocket.getOutputStream());
                        String stringLine = in.readLine();
                        System.out.print(in.readLine());
    //wait and listen from client
                        if (stringLine != null) {
                             //if recieve a string send "CONNECTED"
                             out.print("CONNECTED");
    //"Creat a port for ChatFrame"
                             port[count] = (int) Math.ceil(Math.random() * 9999);
                             manageClient[count] = new ManageClient(port[count]);
                             manageClient[count].start();
                             out.print(port[count]);
                             count++;
                             listenSocket.close();
              } catch (Exception e) {
                   e.printStackTrace();
         public static void main(String[] args) {
              EchoClient e = new EchoClient();
              e.start();
    ManageClient class
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class ManageClient extends Thread {
         private ServerSocket ssClient;
         private Socket sClient;
         private int port;
         public ManageClient(int port) {
              this.port = port;
         public int getPort() {
              return port;
         public void run() {
              try {
                   ssClient = new ServerSocket(getPort());
                   sClient = ssClient.accept();
                   while (true) {
                        BufferedReader in = new BufferedReader(new InputStreamReader(
                                  sClient.getInputStream()));
                        PrintWriter out = new PrintWriter(sClient.getOutputStream());
                        String s = in.readLine();
                        if (s != null)
                             out.print("have recieved");
              } catch (Exception e) {
                   e.printStackTrace();
    ChatFrame class need for running
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    public class ChatFrame extends JFrame {
         private JTree tree = null;
         private ClientNode[] clientArray = new ClientNode[9999];
         private JTextArea textChat = null;
         private JTextField[] textBox = new JTextField[9999];
         private Socket connection = null;
         private BufferedReader in = null;
         private PrintWriter out = null;
         private int port;
         private JTabbedPane communicationTab;
         private JButton sendButton;
         public ChatFrame(int port) {
              setSize(300, 300);
              this.port = port;
              DefaultMutableTreeNode user = new DefaultMutableTreeNode(
                        "Another users");
              DefaultMutableTreeNode Client1 = new DefaultMutableTreeNode("Client 1");
              user.add(Client1);
              tree = new JTree(user);
              JScrollPane treeScrollPane = new JScrollPane(tree);
              JPanel p = new JPanel();
              p.add(treeScrollPane);
              communicationTab = new JTabbedPane();
              JSplitPane upperSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
                        communicationTab, p);
              upperSplitPane.setContinuousLayout(true);
              upperSplitPane.setOneTouchExpandable(true);
              upperSplitPane.setResizeWeight(1);
              textChat = new JTextArea();
              textChat.setLineWrap(true);
              textChat.setWrapStyleWord(true);
              JScrollPane scroll = new JScrollPane(textChat);
              JPanel q = new JPanel();
              sendButton = new JButton("Send");
              sendButton.setSize(2, 2);
              q.setLayout(new FlowLayout());
              q.add(sendButton);
              JPanel tc = new JPanel();
              tc.setLayout(new BorderLayout());
              tc.add(scroll, BorderLayout.CENTER);
              tc.add(q, BorderLayout.EAST);
              JSplitPane underSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                        upperSplitPane, tc);
              underSplitPane.setLastDividerLocation(1);
              underSplitPane.setResizeWeight(1);
              connectToServer();
              getContentPane().add(underSplitPane, "Center");
              sendButton.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent arg0) {
                        // TODO Auto-generated method stub
                        if (textChat.getText() != "")
                             send(textChat.getText());
                        textChat.setText("");
         public void connectToServer() {
              try {
                   connection = new Socket("serverName", getPort());
                   while (true) {
                        in = new BufferedReader(new InputStreamReader(connection
                                  .getInputStream()));
                        out = new PrintWriter(connection.getOutputStream());
                        String s = in.readLine();
                        if (s != null) {
                             textChat.append(s);
              } catch (Exception e) {
         public int getPort() {
              return port;
         public static void main(String[] args) {
              ChatFrame c = new ChatFrame(903);
              c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              c.show();
         public void send(String s) {
              try {
                   out.print(s);
                   out.print("\r\n");
                   out.flush();
              } catch (Exception e) {
                   e.printStackTrace();
    }Edited by: rockfanskid on Oct 17, 2007 9:47 AM

    I agree with DrClap.
    Another thing: do NOT compare Strings with == unless you want to check for identity equals (as in the same object). Use String.equals() instead for equality.
    Example:
    String a = "test";
    String b = "test";
    String c = new String("test".getBytes());
    System.out.println(a.equals(b)); // true
    System.out.println(a == b); // true
    System.out.println(b.equals(c)); // true
    System.out.println(b == c); // falseThis is just a trick from Sun to confuse you ;) String's are internally pooled by the String class. Look at the javadoc of String.intern() for instance for more information. But use String.equals() in your code...

  • Need some help with stucked threads

    Hi, I am running an ADF application on Weblogic 10.3.4. I get a lot of stucked threads and can't figure out the reason.
    Here is my stack dump:
    <31.mar.2011 kl 08.36 CEST> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "625" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@237aaa4c[
    POST /faces/hovedside?_adf.ctrl-state=13zq3miluz_4 HTTP/1.1
    Connection: keep-alive
    Referer: https://please.help.me/?_afrLoop=8410499084123&_afrWindowMode=0&_afrWindowId=null
    Content-Length: 356
    Adf-Ads-Page-Id: 3
    Origin: https://please.help.me
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Adf-Rich-Message: true
    Accept: */*
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: nb-NO,nb;q=0.8,no;q=0.6,nn;q=0.4,en-US;q=0.2,en;q=0.2
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    Cookie: JSESSIONID=1dQ7NJpXZhYGM11Sf2ppDz4LZwQM5FpL6yxDrj0cSlMTsTdWvPPN!-222523808
    ]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    Thread-133 "[STUCK] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'" <alive, suspended, priority=1, DAEMON> {
    java.util.ArrayList.clone(ArrayList.java:250)
    oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.getChildren(JUCtrlHierNodeBinding.java:719)
    oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.findChildNode(JUCtrlHierNodeBinding.java:844)
    oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:772)
    oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:101)
    oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:119)
    oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:633)
    org.apache.myfaces.trinidad.model.RowKeySetTreeImpl$PathIterator.nextModelKey(RowKeySetTreeImpl.java:745)
    org.apache.myfaces.trinidad.model.RowKeySetTreeImpl$PathIterator.nextItem(RowKeySetTreeImpl.java:740)
    org.apache.myfaces.trinidad.model.RowKeySetTreeImpl$PathIterator.next(RowKeySetTreeImpl.java:721)
    oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils.initModel(TreeRendererUtils.java:288)
    oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils.wrapModel(TreeRendererUtils.java:527)
    oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils.getCollectionObject(TreeRendererUtils.java:340)
    oracle.adfinternal.view.faces.renderkit.rich.TreeTableRenderer.getCollectionObject(TreeTableRenderer.java:762)
    oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.storeHeightAutosized(TableRenderer.java:2365)
    oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:482)
    oracle.adfinternal.view.faces.renderkit.rich.TreeTableRenderer.encodeAll(TreeTableRenderer.java:585)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:527)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:398)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:582)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:573)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:154)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:285)
    org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:252)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:236)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:407)
    oracle.adfinternal.view.faces.renderkit.rich.PanelHeaderRenderer.renderChildrenAfterHelpAndInfo(PanelHeaderRenderer.java:471)
    oracle.adfinternal.view.faces.renderkit.rich.PanelHeaderRenderer._renderContentCell(PanelHeaderRenderer.java:939)
    oracle.adfinternal.view.faces.renderkit.rich.PanelHeaderRenderer.renderContentRow(PanelHeaderRenderer.java:425)
    oracle.adfinternal.view.faces.renderkit.rich.PanelHeaderRenderer.encodeAll(PanelHeaderRenderer.java:160)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:398)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:582)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:573)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:154)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:285)
    org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:252)
    oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:236)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:769)
    oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:1055)
    oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanes(PanelStretchLayoutRenderer.java:345)
    oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:122)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1998)
    oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.access$400(RegionRenderer.java:46)
    oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer$ChildEncoderCallback.processComponent(RegionRenderer.java:562)
    oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer$ChildEncoderCallback.processComponent(RegionRenderer.java:553)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:154)
    org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:285)
    org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:252)
    oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer._encodeChildren(RegionRenderer.java:229)
    oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.encodeAll(RegionRenderer.java:144)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    oracle.adf.view.rich.component.fragment.UIXRegion.encodeEnd(UIXRegion.java:292)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.encodeAll(IncludeTag.java:511)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:361)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:529)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:167)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1998)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1267)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:88)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1998)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1267)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:88)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:88)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:361)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:529)
    oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:167)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1998)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1267)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:88)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1998)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1267)
    oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:88)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:407)
    oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:69)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.encodeEnd(ContextSwitchingComponent.java:155)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:407)
    oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:158)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:398)
    oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2608)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:407)
    oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:725)
    oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1252)
    org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:326)
    org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:758)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:920)
    com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:256)
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:131)
    javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
    org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:155)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:773)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:252)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:207)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:246)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:207)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:246)
    weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:224)
    weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:108)
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:206)
    weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:147)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:69)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:437)
    oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:44)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:437)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:231)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:133)
    org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:91)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:163)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:299)
    oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:405)
    oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
    oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:98)
    oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:86)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:25)
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:55)
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3687)
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:308)
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:116)
    weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2213)
    weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2135)
    weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1420)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:168)
    Please help.
    Thomas

    Hi Thomas,
    Your Thread is showing a processor computing operation ArrayList.clone() triggered from the Oracle JBO framework / API.
    Few questions for you:
    -     Are you using Solaris OS? If yes can you please capture the PRSTAT at the same time as your JVM Thread Dump using command:
    prstat -L 0 1 | grep <java pid>;kill -3 <java pid>
    -     How many threads are showing this condition?
    -     Was CPU utilization of the affected Java process very high on the server at that time?
    -     What is the utilization of your Java Heap at the time of the Thread Dump capture?
    This Thread could be stuck in an infinite loop since it is stuck for at least 600 seconds (10 minutes). It would probably help to generate a few more snapshots earlier and understand if Thread is hanging in the same code portion (possibility Oracle JBO) for every snapshot or not.
    This could also be data related (too many data rows) returned and causing high processing time for the clone operation from the Myfaces / JSF table that you are trying to render.
    Regards,
    P-H
    http://javaeesupportpatterns.blogspot.com/

  • Help needed about thread priority

    Hello, could someone help me with the priorities in java? I got 10 levels in total(1-10), but I do need at least 20 levels for my multiple threads program.
    Thank you for your kind help in advance.

    First, let me apologize if I am incorrect, but it seems that the native Thread implementation restricts you to 10 priorities regardless.
    However, you can do just about anything you envision, but it will require some implementation on your part.
    You could implement a subclass of thread that contains your priority (which could be from 1-20). You could then maintain a ThreadManager that would store all running threads, and would accept requests to start and stop threads. The ThreadManager could make decisions about which threads to run, which to interrupt, which to sleep, etc., based on your priority value.
    This sounds like alot to swallow, but I'm sure it's doable if you understand threads.

  • Need help with java thread program

    Hi
    I have an applet which does some painting etc, i need to write a thread which runs in background, and if there is no user activity for 30 min will refresh the screen.
    I have one good thing that all user options go from one program so i know when user does some thing.
    How do i write this thread program?
    1. I need this program to start counter as soon as some activity is done by user
    2. When user does some thing stop this thread
    3. when user completes his action restart the thread with 30 min timer.
    4. when there is no activity for 30 min refresh the screen
    Any help will be really good
    Ashish

    Not sure what the problem is. Your pseudo code looks good to me.
    The only suggestion I would make is that your use a Timer so you don't have to worry about creating your own Thread. You schedule a Timer to fire in 30 minutes. Everytime you have activiity you cancel the timer and reschedule it.

  • Help on this thread dump..

    hey guys, im having a problem reading this thread dump. i'm just a newbie. could you help me point what's wrong in our system based on this thread dump? there were no errors in our logs, it just hangs and we're so confused as to what the issue is. here's the thread dump:
    Full thread dump Java HotSpot(TM) Client VM (1.4.0_02-b02 mixed mode):
    "MessageWriter_370" prio=5 tid=0x3479e0 nid=0x1df waiting on monitor [94381000..94381a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a690dd88> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a690dd88> (a java.util.ArrayList)
    "MessageReader_369" prio=5 tid=0x33f888 nid=0x1de runnable [94581000..94581a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a690de38> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a690df58> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a690ddb0> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_368" prio=5 tid=0x2784c8 nid=0x1dc waiting on monitor [94881000..94881a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a68e6d90> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a68e6d90> (a java.util.ArrayList)
    "MessageReader_367" prio=5 tid=0x279230 nid=0x1db waiting for monitor entry [94981000..94981a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_366" prio=5 tid=0x5c2090 nid=0x1da waiting on monitor [90e81000..90e81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a68df070> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a68df070> (a java.util.ArrayList)
    "MessageReader_365" prio=5 tid=0x27da50 nid=0x1d9 runnable [90f81000..90f81a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a68cb480> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a68cb520> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a68cb408> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_364" prio=5 tid=0x5c1f00 nid=0x1d8 waiting on monitor [91281000..91281a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a68ca1a0> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a68ca1a0> (a java.util.ArrayList)
    "MessageReader_363" prio=5 tid=0x753a68 nid=0x1d7 waiting for monitor entry [91381000..91381a28]
         at epylon.persistence.JmsPersistenceManager.persist(JmsPersistenceManager.java:171)
         - waiting to lock <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at epylon.persistence.JmsPersistenceManager.processMsgStatus(JmsPersistenceManager.java:337)
         at com.presumo.jms.message.AckHelper.completedAck(AckHelper.java:158)
         - locked <a6b3d378> (a com.presumo.jms.message.AckHelper)
         at com.presumo.jms.router.PersistentAckHandler.handleAcks(PersistentAckHandler.java:247)
         - locked <a68ca178> (a com.presumo.jms.router.PersistentAckHandler)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:319)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_362" prio=5 tid=0x5c09a8 nid=0x1d6 waiting on monitor [91481000..91481a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a6867f58> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a6867f58> (a java.util.ArrayList)
    "MessageReader_361" prio=5 tid=0x2790d8 nid=0x1d5 runnable [91581000..91581a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a6868008> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a6868128> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a6867f80> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_352" prio=5 tid=0x34f730 nid=0x1c9 waiting on monitor [94c81000..94c81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a6744968> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a6744968> (a java.util.ArrayList)
    "MessageReader_351" prio=5 tid=0xd7370 nid=0x1c8 runnable [94d81000..94d81a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a6744a18> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a6744b38> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a6744990> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_350" prio=5 tid=0x34fb38 nid=0x1c7 waiting on monitor [95081000..95081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a66ef950> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a66ef950> (a java.util.ArrayList)
    "MessageReader_349" prio=5 tid=0x278620 nid=0x1c6 runnable [95181000..95181a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a66efa00> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a66efb20> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a66ef978> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_344" prio=5 tid=0x6a0370 nid=0x1c0 waiting on monitor [92481000..92481a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a66665a8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a66665a8> (a java.util.ArrayList)
    "MessageReader_343" prio=5 tid=0x33f730 nid=0x1bf waiting for monitor entry [92581000..92581a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_332" prio=5 tid=0x3a0d38 nid=0x1b0 waiting on monitor [93681000..93681a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a620e700> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a620e700> (a java.util.ArrayList)
    "MessageReader_331" prio=5 tid=0x69dd18 nid=0x1af waiting for monitor entry [93781000..93781a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_318" prio=5 tid=0x39fc10 nid=0x19e waiting on monitor [95c81000..95c81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5f1f0f0> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5f1f0f0> (a java.util.ArrayList)
    "MessageReader_317" prio=5 tid=0x69da68 nid=0x19d waiting on monitor [95d81000..95d81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at java.lang.Object.wait(Object.java:426)
         at epylon.persistence.JmsPersistenceManager.obtainLock(JmsPersistenceManager.java:144)
         - locked <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at com.presumo.jms.persistence.PersistentQueue.push(PersistentQueue.java:142)
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - locked <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_316" prio=5 tid=0x254c30 nid=0x19c waiting on monitor [96281000..96281a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5e9d7e0> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5e9d7e0> (a java.util.ArrayList)
    "MessageReader_315" prio=5 tid=0x69d910 nid=0x19b waiting for monitor entry [96381000..96381a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_314" prio=5 tid=0x3a1bf0 nid=0x19a waiting on monitor [99081000..99081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5e24348> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5e24348> (a java.util.ArrayList)
    "MessageReader_313" prio=5 tid=0x69d7b8 nid=0x199 waiting for monitor entry [99181000..99181a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_312" prio=5 tid=0x64c608 nid=0x198 waiting on monitor [99681000..99681a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5df1a88> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5df1a88> (a java.util.ArrayList)
    "MessageReader_311" prio=5 tid=0x5d00a0 nid=0x197 waiting for monitor entry [99781000..99781a28]
         at epylon.persistence.JmsPersistenceManager.persist(JmsPersistenceManager.java:171)
         - waiting to lock <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at epylon.persistence.JmsPersistenceManager.processMsgStatus(JmsPersistenceManager.java:337)
         at com.presumo.jms.message.AckHelper.completedAck(AckHelper.java:158)
         - locked <a6b3d538> (a com.presumo.jms.message.AckHelper)
         at com.presumo.jms.router.PersistentAckHandler.handleAcks(PersistentAckHandler.java:247)
         - locked <a5df1a60> (a com.presumo.jms.router.PersistentAckHandler)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:319)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_310" prio=5 tid=0x3a0be0 nid=0x195 waiting on monitor [91a81000..91a81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5dd5370> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5dd5370> (a java.util.ArrayList)
    "MessageReader_309" prio=5 tid=0x3a7108 nid=0x194 waiting for monitor entry [91b81000..91b81a28]
         at com.presumo.jms.message.AckHelper.completedAck(AckHelper.java:150)
         - waiting to lock <a6a87030> (a com.presumo.jms.message.AckHelper)
         at com.presumo.jms.router.PersistentAckHandler.handleAcks(PersistentAckHandler.java:247)
         - locked <a5dd5348> (a com.presumo.jms.router.PersistentAckHandler)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:319)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_308" prio=5 tid=0x3a1290 nid=0x193 waiting on monitor [91e81000..91e81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5d9c338> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5d9c338> (a java.util.ArrayList)
    "MessageReader_307" prio=5 tid=0x42ce10 nid=0x192 runnable [91f81000..91f81a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a5d9c3e8> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a5d9c508> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a5d9c360> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_302" prio=5 tid=0x4beef8 nid=0x18c waiting on monitor [93a81000..93a81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5cce5c8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5cce5c8> (a java.util.ArrayList)
    "MessageReader_301" prio=5 tid=0x577eb0 nid=0x18b runnable [93b81000..93b81a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a5cce678> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a5cce798> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a5cce5f0> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_298" prio=5 tid=0x413b08 nid=0x187 waiting on monitor [93c81000..93c81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5c410d0> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5c410d0> (a java.util.ArrayList)
    "MessageReader_297" prio=5 tid=0x353b58 nid=0x186 waiting for monitor entry [93d81000..93d81a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_296" prio=5 tid=0x592028 nid=0x185 waiting on monitor [94081000..94081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5bd4cd8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5bd4cd8> (a java.util.ArrayList)
    "MessageReader_295" prio=5 tid=0x66d660 nid=0x184 waiting for monitor entry [94181000..94181a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_294" prio=5 tid=0x1fa4e0 nid=0x183 waiting on monitor [94281000..94281a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5b7e880> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5b7e880> (a java.util.ArrayList)
    "MessageReader_293" prio=5 tid=0x34f9e0 nid=0x182 waiting for monitor entry [94481000..94481a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_292" prio=5 tid=0x34de60 nid=0x17f waiting on monitor [91081000..91081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5b502a8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5b502a8> (a java.util.ArrayList)
    "MessageReader_291" prio=5 tid=0x592430 nid=0x17e runnable [91181000..91181a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a5b3cdb0> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a5b3ce50> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a5b3cd38> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_282" prio=5 tid=0x57d608 nid=0x173 waiting on monitor [92c81000..92c81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a59cd8b8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a59cd8b8> (a java.util.ArrayList)
    "MessageReader_281" prio=5 tid=0x1f5420 nid=0x172 waiting for monitor entry [92d81000..92d81a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_262" prio=5 tid=0x3a2ad8 nid=0x15b waiting on monitor [91c81000..91c81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a576a760> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a576a760> (a java.util.ArrayList)
    "MessageReader_261" prio=5 tid=0x3a20a0 nid=0x15a waiting for monitor entry [91d81000..91d81a28]
         at epylon.persistence.JmsPersistenceManager.persist(JmsPersistenceManager.java:171)
         - waiting to lock <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at epylon.persistence.JmsPersistenceManager.processMsgStatus(JmsPersistenceManager.java:337)
         at com.presumo.jms.message.AckHelper.completedAck(AckHelper.java:158)
         - locked <a6b39f60> (a com.presumo.jms.message.AckHelper)
         at com.presumo.jms.router.PersistentAckHandler.handleAcks(PersistentAckHandler.java:247)
         - locked <a576a738> (a com.presumo.jms.router.PersistentAckHandler)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:319)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_258" prio=5 tid=0x4129b0 nid=0x157 waiting on monitor [92a81000..92a81a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5716ab8> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5716ab8> (a java.util.ArrayList)
    "MessageReader_257" prio=5 tid=0x581bc0 nid=0x156 waiting for monitor entry [92b81000..92b81a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_256" prio=5 tid=0x5873e8 nid=0x155 waiting on monitor [92081000..92081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a56f6278> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a56f6278> (a java.util.ArrayList)
    "MessageReader_255" prio=5 tid=0x587290 nid=0x154 runnable [92181000..92181a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a56e2f98> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a56e2ff0> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a56e2f38> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_252" prio=5 tid=0x5806f0 nid=0x150 waiting on monitor [92881000..92881a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a567f138> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a567f138> (a java.util.ArrayList)
    "MessageReader_251" prio=5 tid=0x57fd98 nid=0x14f waiting for monitor entry [92981000..92981a28]
         at com.presumo.jms.router.RouterAdapter.queueMessages(RouterAdapter.java:290)
         - waiting to lock <a3a38bb8> (a com.presumo.jms.persistence.PersistentQueue)
         at com.presumo.jms.router.Router.routeMessages(Router.java:215)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:353)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_214" prio=5 tid=0x30f950 nid=0x124 waiting on monitor [95281000..95281a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a529f260> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a529f260> (a java.util.ArrayList)
    "MessageReader_213" prio=5 tid=0x55faa8 nid=0x123 waiting for monitor entry [95381000..95381a28]
         at epylon.persistence.JmsPersistenceManager.persist(JmsPersistenceManager.java:171)
         - waiting to lock <a3a38d28> (a epylon.persistence.JmsPersistenceManager)
         at epylon.persistence.JmsPersistenceManager.processMsgStatus(JmsPersistenceManager.java:337)
         at com.presumo.jms.message.AckHelper.completedAck(AckHelper.java:158)
         - locked <a6b683a8> (a com.presumo.jms.message.AckHelper)
         at com.presumo.jms.router.PersistentAckHandler.handleAcks(PersistentAckHandler.java:247)
         - locked <a529f238> (a com.presumo.jms.router.PersistentAckHandler)
         at com.presumo.jms.router.RemoteSession.receiveMessages(RemoteSession.java:319)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:561)
    "MessageWriter_210" prio=5 tid=0x4dd0a8 nid=0x11f waiting on monitor [93081000..93081a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a52692c0> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a52692c0> (a java.util.ArrayList)
    "MessageReader_209" prio=5 tid=0x4c2fb8 nid=0x11e runnable [93181000..93181a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a5256468> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a5256508> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a52563f0> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_208" prio=5 tid=0x4c6de0 nid=0x11d waiting on monitor [93481000..93481a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a5241588> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a5241588> (a java.util.ArrayList)
    "MessageReader_207" prio=5 tid=0x5c2220 nid=0x11c runnable [93581000..93581a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a5241638> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a5241758> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at java.io.DataInputStream.readInt(DataInputStream.java:392)
         at com.presumo.jms.plugin.implementation.transport.tcp.TransportImpl.receiveMessages(TransportImpl.java:191)
         - locked <a52415b0> (a java.lang.String)
         at com.presumo.jms.router.RemoteSession$MessageReader.run(RemoteSession.java:559)
    "MessageWriter_188" prio=5 tid=0x642b88 nid=0x105 waiting on monitor [92281000..92281a28]
         at java.lang.Object.wait(Native Method)
         - waiting on <a50e4248> (a java.util.ArrayList)
         at com.presumo.jms.router.RemoteSession$MessageWriter.run(RemoteSession.java:641)
         - locked <a50e4248> (a java.util.ArrayList)
    "MessageReader_187" prio=5 tid=0x1f92e8 nid=0x104 runnable [92381000..92381a28]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:116)
         at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         - locked <a50e42f8> (a java.lang.Object)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
         at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
         - locked <a50e4418> (a com.sun.net.ssl.internal.ssl.AppInputStream)
         at ja

    Here's the lengthy code :)
    package com.presumo.jms.router;
    import com.presumo.jms.message.JmsMessage;
    import com.presumo.jms.message.SystemMessageConstants;
    import com.presumo.jms.plugin.implementation.MemoryMessageQueue;
    import com.presumo.jms.plugin.transport.Transport;
    import com.presumo.jms.selector.JmsOperand;
    import com.presumo.jms.selector.Parser;
    import com.presumo.jms.JmsServer;
    import com.presumo.jms.persistence.PersistentQueue;
    import com.presumo.jms.resources.Resources;
    import com.presumo.util.log.Logger;
    import com.presumo.util.log.LoggerFactory;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import javax.jms.InvalidSelectorException;
    import javax.jms.JMSException;
    import epylon.bean.MessageStatusBean;
    import epylon.persistence.JmsPersistenceManager;
    import epylon.util.*;
    import org.apache.log4j.Category;
    * Class that sits between the Router and the Transport layer in
    * terms of message flow. Essentially encapsulates the remote
    * connection from the router, as well as handling the persistent
    * message acknowledgment scheme.
    * @author Dan Greff
    public class RemoteSession implements RoutingTarget
    /** Largest batch of messages that will be bundled together **/
    protected static final int MSG_BATCH_SIZE = 2000;
    /** Time that between sending batches of messages **/
    protected static final long latency = 500;
    /** Property name for sending filters via system messages **/
    protected static final String FILTER_PROPERTY = "JMSX_FILTER";
    /** Property name for sending acks via system messages **/
    protected static final String ACKS_PROPERTY = "JMSX_ACKS";
    /** Filter sent to this JVM from the other side of the connection
    * which indicates what messages the router on the other side is
    * interested in.
    protected JmsOperand remoteFilter;
    /** Local filter which the represents what messages the local
    * router is interested in. This filter is sent to other routers.
    protected JmsOperand localFilter;
    /** Router this RemoteSession is connected to **/
    protected Router router = null;
    /** Interface which messages are sent to and received from the network **/
    protected Transport transport;
    /** Listener to be notified of if the connection is lost **/
    protected ConnectionListener connxListener;
    /** Handles acknowledgement logic for persistent messages **/
    protected PersistentAckHandler persistentAckHandler;
    /** Instance of inner class that reads message from the Transport **/
    protected MessageReader msgReader;
    /** Instance of inner class that writes message from the Transport **/
    protected MessageWriter msgWriter;
    /** Set unique ID assigned to the remote session by the router **/
    protected int targetID;
    /** Local copy of the Parser singleton **/
    protected final Parser parser = Parser.getInstance();
    /** Messages queued up to be send **/
    protected final ArrayList outbox = new ArrayList();
         protected static int connectionLostThreadCount = 0;
         //Remote site name.
         private String remoteSite = null;
         private String siteTransportID = null;
         private JmsPersistenceManager persistentManager;
         //routeIncompletedMsgs
         protected boolean incompletedMsgsRouted = false;
         //No need to persist remote filter for EpylonRemote session
         protected boolean connectToJmsSession = false;
         static public String FALSE = "FALSE";
         static public String TRUE = "TRUE";
         private static int THREAD_COUNT = 1;
         private static Category logger = Category.getInstance( RemoteSession.class.getName() );
    // Constructors //
         public RemoteSession(Router router,
    Transport transport,
                                  String remoteSite,
                                  ConnectionListener listener) throws Exception{     
              this.router = router;
              this.transport = transport;
              this.remoteSite = remoteSite;
              this.connxListener = listener;
              siteTransportID = transport.getConnectionClientID();
              try {
                   remoteFilter = parser.parseFilter("true");
              } catch (InvalidSelectorException ise) {}
              persistentAckHandler = new PersistentAckHandler(this);
              router.addTarget(this);
              persistentManager = JmsPersistenceManager.getInstance();
              start();
    // Public methods //
         public void setTransport(Transport t){
    // TODO:: Add error checking to make sure this is only being called
    // as a result of a reconnection. DTG
              this.transport = t;
         public synchronized void start(){
    if (msgReader == null) {
    msgReader = new MessageReader(THREAD_COUNT);
    msgReader.start();
         THREAD_COUNT ++;
    if (msgWriter == null) {
    msgWriter = new MessageWriter(THREAD_COUNT);
    msgWriter.start();
         THREAD_COUNT ++;
    public synchronized void stop()
    if (msgReader != null) {
    msgReader.stopReader();
    msgReader = null;
    if (msgWriter != null) {
    msgWriter.stopWriter();
    msgWriter = null;
    public void close()
    this.stop();
    if (transport != null) {
    transport.close();
    transport = null;
    router.removeTarget(this);
    // Begin implementation of RoutingTarget interface methods
    public void setTargetID(int id)
    this.targetID = id;
         public JmsOperand getRoutingFilter(){
              JmsOperand retval = remoteFilter;
              return retval;
         public void setRemoteRoutingFilter(JmsOperand filter, boolean add){
              if (filter != localFilter){
                   JmsMessage msg;
                   String filterString;               
                   try {
                        if (persistentManager == null)
                             persistentManager = JmsPersistenceManager.getInstance();
                        if(connectToJmsSession || !JmsServer.isJmsSessionInitComplete())
                             filterString = parser.unparse(filter);               
                        else                                        
                             filterString = persistentManager.prepareRemoteFilterForSite(remoteSite);
                        logger.debug("setRemoteRoutingFilter::remoteSite =>"+ remoteSite + "\n "+ filterString);
                        if (!defaultFilter(filterString.toUpperCase())){
                             msg = new JmsMessage(router.getName());
                             msg.setJMSSystemMsgType(SystemMessageConstants.REMOTE_FILTER_CHANGE_TYPE);                                             
                             msg.setStringProperty(FILTER_PROPERTY, filterString);
                             msg.setStringProperty(MessageStatusBean.ORIGINATING_SITE_NAME, JmsServer.siteName());
                             localFilter = filter;
                             if (connectToJmsSession && !JmsServer.isJmsSessionInitComplete())
                                  JmsServer.addLocalFilter();
                             if ( !connectToJmsSession || !JmsServer.isAllLocalFilterProcessed())
                                  queueOutboxMessage(msg);                         
                   } catch (Exception e) {
                        // shouldn't happen with a in memory message queue but, dump it anyways
                        logger.error(e);
    public boolean needsFilterUpdates()
    return true;
    * Called by the router to give a potential message to this
    * routing target.
    * Implementes RoutingTarget.takeMessage();
    public JmsMessage takeMessage(JmsMessage msg)
    throws Exception{
         logger.debug("RemoteSession:takeMessage connectToJmsSession=>"+ connectToJmsSession);
         boolean taken = false;
         if (msg.getSendingTargetID() != this.targetID && incompletedMsgsRouted) { // prevent backtracking
              if (connectToJmsSession || msg.getJMSDeliveryMode() != javax.jms.DeliveryMode.PERSISTENT ){ 
                   taken = parser.evaluate(remoteFilter, msg);
              } else
                   taken = msg.getAckHelper().routeMsgtoRemoteSite( remoteSite);
              if (taken) {
                   if (msg.getJMSDeliveryMode() == javax.jms.DeliveryMode.PERSISTENT)
                        persistentAckHandler.handleOutgoingMsg(msg);               
                   synchronized(outbox) {
                        outbox.add(msg);
                        outbox.notifyAll();
         return msg;
    // End implementaiton of RoutingTarget interface methods
    * Called by MessageReader.run() when messages come from the transport.
    public void receiveMessages(JmsMessage [] msgs)
    throws JMSException{
    int length = msgs.length;
    int msgsRemoved = 0;
    for (int i=0; i < length; ++i) {
              logger.debug("ReceiveMessages from "+ remoteSite + msgs);
              msgs[i].setStringProperty(MessageStatusBean.ORIGINATING_SITE_NAME, remoteSite);
              boolean systemMsg = false;
              int type = msgs[i].getJMSSystemMsgType();
              switch (type) {
              case(SystemMessageConstants.REMOTE_FILTER_CHANGE_TYPE):
                   handleRemoteFilterMsg(msgs[i]);
                   systemMsg = true;
                   break;
    case(SystemMessageConstants.ACKS_MSG_TYPE):
                   String acks = (String) msgs[i].getObjectProperty(ACKS_PROPERTY);
                   try{
                        persistentAckHandler.handleAcks(acks);
                   }catch(Exception e){
                        //TODO: Handle exception
                        logger.error(e);
                   systemMsg = true;
                   break;
              if (systemMsg) {
                   ++msgsRemoved;
                   msgs[i] = null;
              }else {               
                   // Filter out duplicates
                   boolean duplicate = persistentAckHandler.isDuplicate(msgs[i]);
                   if (duplicate) {
                        msgs[i] = null;
                        ++msgsRemoved;
                   else {
                        // Valid user message... start acknowledgment tracking
                        msgs[i].setSendingTargetID( targetID );          
                        persistentAckHandler.setOriginator(msgs[i]);
    if (msgsRemoved > 0) {
              msgs = collapseMsgArray(msgs, length - msgsRemoved);
    try {
              router.routeMessages(msgs);
              persistentAckHandler.handleIncomingMsgs(msgs);
    } catch (Exception e) {
    // TODO:: add some error handling
    logger.error("An exception occurred while routing msgs: \n", e);
         public void acksAvailable(){
              synchronized(outbox) {
                   outbox.notifyAll();
    // Package methods //
    // Private methods //
    protected void queueOutboxMessage(JmsMessage msg)
    synchronized(outbox) {
    outbox.add(msg);
    outbox.notifyAll();
         * Handle remote filter message.
         protected void handleRemoteFilterMsg(JmsMessage msg)
              throws JMSException{       
              boolean remoteFilterPersist = false;
              String filter = (String) msg.getObjectProperty(FILTER_PROPERTY);
              if (!connectToJmsSession && !JmsServer.isJmsSessionInitComplete()){
                   try{
                        logger.debug("Sleep");
                        Thread.currentThread().sleep(3000);
                   }catch(Exception e){
                        logger.error(e);
              if (!defaultFilter(filter.toUpperCase())){
              if (remoteSite.indexOf(JmsServer.siteName()) != -1 &&
                   !JmsServer.isAllLocalFilterProcessed() &&
                   !connectToJmsSession )
                   JmsServer.processLocalFilter();
              if (!connectToJmsSession){
                   persistRemoteFilter(remoteSite, filter);
                   remoteFilterPersist = true;
              try {
                   remoteFilter = parser.parseFilter(filter);
                   if (remoteFilterPersist){
                        if (!incompletedMsgsRouted &&
                             !connectToJmsSession ){          
                             routeMessagesToRemoteSite();
                             incompletedMsgsRouted = true;
                        logger.debug("RemoteSession::handleRemoteFilterMsg "+ remoteFilter);
                        if (!connectToJmsSession)
                        router.recalculateFilters(true);
              } catch (javax.jms.InvalidSelectorException ex) {
                   logger.error("Remote client sent invalid routing filter: " +
                                  transport.getRemoteID() + " :: " + filter);
    * Utility function to remove null values from the array
    protected JmsMessage [] collapseMsgArray(JmsMessage [] msgs, int size)
    JmsMessage [] retval = new JmsMessage[size];
    for (int i=0, j=0; i < msgs.length; ++i) {
    if (msgs[i] != null) {
    retval[j] = msgs[i];
    ++j;
    return retval;
    * Called by the internal methods reading and sending messages
    * to the transport layer when an IOException is thrown from
    * the transport layer. This indicates a connection loss or
    * corruption.
    * TODO:: explain why this needs to spawn off as a thread
         protected void connectionLost(IOException ioe){
              //Spawn off a thread to connect remote server when connection lost.
              //This RemoteSession is accepted connection from remote client when its
              //RemoteURL is null, so there is no need to spawn off connectionLostthread
              //And close transport.
              if(getRemoteUrl() != null){
                   connectionLostThreadCount++;               
                   Thread t = new Thread("ConnectionLost Thread"+ connectionLostThreadCount) {
                             public void run() {
                                  RemoteSession.this.close();
                                  if (transport != null) {
                                       transport.close();
                                       transport = null;
                                  connxListener.connectionLost(RemoteSession.this, siteTransportID);                              
                   t.start();
              }     else{
                   if (transport != null) {
                        transport.close();
                        transport = null;
                   connxListener.connectionLost(RemoteSession.this, siteTransportID);
                   //No need to close transport because its outputstream closed
         protected JmsMessage createAckMessage(){
              JmsMessage ackMessage = null;
              String acks = persistentAckHandler.getAckString();
              if (acks != null) {
                   ackMessage = new JmsMessage(router.getName());
                   try {
                        ackMessage.setJMSSystemMsgType(SystemMessageConstants.ACKS_MSG_TYPE);
                        ackMessage.setStringProperty(ACKS_PROPERTY, acks);
                   } catch (JMSException jmsex) {}
              return ackMessage;
         // Begin Inner Class MessageReader //
         * Inner class reperesenting thread reading messages from the transport
         * implementation.
         protected class MessageReader extends Thread{
              private volatile boolean stopped = false;
              public MessageReader(int threadCount) {
                   super("MessageReader_"+ threadCount );
              public void stopReader(){
                   if (! stopped) stopped = true;
              public void run(){
                   JmsMessage [] msgs;
                   while (stopped == false) {
                        if (router.isRouterStop())
                             stopped = true;
                        try {
                             if (transport == null){                    
                             throw new IOException("Transport socket not available");                    
                             }else
                                  msgs = transport.receiveMessages();                         
                             if (msgs != null && stopped == false) {
                                  receiveMessages(msgs);
                                  msgs = null;
                        }catch(SocketCloseException sce){
                             stopped = true;
                             connectionLost(new IOException(sce.getMessage()));
                        }catch(JMSException jmse){
                             // TODO:: handle this properly
                             logger.error(jmse);
                        }catch(NullPointerException ne){
                             logger.error(ne);
                        }catch (IOException ioe) {
                             if (! stopped) {
                                  // TODO:: handle this properly
                                  logger.debug(ioe);
                                  stopped = true;
                                  connectionLost(ioe);
         // End Inner Class MessageReader //
         // Begin Inner Class MessageWriter //
         * Inner class writing messages to the Transport
         protected class MessageWriter extends Thread{
              private volatile boolean stopped = false;
              private volatile boolean sendMessages;
              public MessageWriter(int threadCount) { super("MessageWriter_"+ threadCount); }
              public final void stopWriter()
                   if (! stopped) {
                        synchronized (outbox) {
                             stopped = true;
                             outbox.notifyAll();
              public final void sendMessagesNow()
                   sendMessages = true;
              public final void run()
                   long nextSend = System.currentTimeMillis() + latency;
                   long sleepTime = 0;
                   while (!stopped) {                    
                        synchronized (outbox) {
                             sendMessages = false;                         
                             if (outbox.size() >= MSG_BATCH_SIZE) {
                                  sendMessages = true;
                             } else if(outbox.size() > 0 ||
                                       persistentAckHandler.acksAvailable() ) {
                                  long currentTime = System.currentTimeMillis();
                                  long diff = nextSend - currentTime;
                                  if (diff <= 0) {
                                       sendMessages = true;
                                  else {
                                       sleepTime = diff;
                             } else {
                                  sleepTime = 0;
                             if (sendMessages == false && !stopped) {
                                  try {
                                       outbox.wait(sleepTime);
                                  } catch (InterruptedException ie) {}
                        if (sendMessages == true) {
                             send();
                             nextSend = System.currentTimeMillis() + latency;
                             sleepTime = 0;
         private final void send(){
              logger.debug("RemoteSession:send");
              try {
                   JmsMessage [] msgs = null;
                   JmsMessage ackMessage = createAckMessage();
                   synchronized(outbox) {
                        if (ackMessage != null) {
                             outbox.add(ackMessage);
                        msgs = new JmsMessage[outbox.size()];
                        msgs = (JmsMessage[]) outbox.toArray(msgs);
                        outbox.clear();
                   if (msgs != null && msgs.length != 0 && transport != null) {
                        transport.sendMessages(msgs);
              }catch(SocketCloseException sce){
                   connectionLost(new IOException(sce.getMessage()));
              } catch (IOException ioe) {
                   logger.error(ioe);
                   connectionLost(ioe);
         private void persistRemoteFilter( String site, String filter)
              throws JMSException{
              try{
                   persistentManager.persistRemoteFilter(site, filter);
                   persistentManager.endTransaction(true);
              }catch(Exception e){
                   logger.error(e);
                   JMSException jmsex = new JMSException("Unable to parse filter");
                   jmsex.setLinkedException(e);
         * This method is called only when remotesession initially connected to
         * route messages and ack messages (stored acks only) to remote
         * site. Don't route messages to JMS core/provider when remoteSeesion
         * connectted to JmsSession and JMS core remote session.
         * @param
         private void routeMessagesToRemoteSite(){
              logger.debug("RemoteSession::routeMessagesToRemoteSite " + remoteSite);
              if (connectToJmsSession)
                   return;
              boolean taken = false;
              JmsMessage[] msgs = null;
              JmsMessage msg;
              try{
                   persistentManager.obtainLock();
                   while (msgs == null){
                        msgs = persistentManager.getPendingDeleteMsgs();     
                   int length = msgs.length;
                   for (int i=0; i<length ; i++){
                        try{
                             msg = (JmsMessage)msgs[i];     
                             if (msg.getAckHelper().needStoredAckToRemoteSite(remoteSite)){
                                  logger.debug("needStoredAckToRemoteSite" + remoteSite);
                                  persistentAckHandler.addMsgToCheckDupsMapAndAcks(msg);
                             }else if (msg.getAckHelper().needCompletedAckToRemoteSite(remoteSite)){
                                  persistentAckHandler.addMsgToSendToMapAndAcks(msg);
                             }else{
                                  taken = msg.getAckHelper().routeMsgtoRemoteSite( remoteSite);
                                  logger.debug("RemoteSession::routeMessagesToRemoteSite taken=> " + taken );
                                  if (taken) {     
                                       if (msg.getJMSDeliveryMode() == javax.jms.DeliveryMode.PERSISTENT)
                                            persistentAckHandler.handleOutgoingMsg(msg);     
                                       while (outbox.size() >= MSG_BATCH_SIZE){
                                            msgWriter.send();
                                            logger.info("Route queued messages to remote sites. Please wait....");
                                            try{
                                                 Thread.sleep(2000);
                                            }catch(Exception e){}
                                       queueOutboxMessage(msg);
                        }catch(Exception e){
                             logger.error(e);
              } finally{
                   persistentManager.releaseLock();               
              logger.debug("RemoteSession::routeMessagesToRemoteSite:Exit");
    // End Inner Class MessageReader //
         private String remoteUrl = null;
         public void setRemoteUrl(String url){
              remoteUrl = url;
         public String getRemoteUrl(){
              return remoteUrl;
         public String getRemoteSite(){
              return remoteSite;
         public void addSessionToRouter(){
              if (router != null)
                   router.addTarget(this);
         public static boolean defaultFilter(String filter){
              return filter.indexOf(TRUE) != -1 || filter.indexOf(FALSE) != -1;

  • Help to anayse Thread Dump

    hi,
    My application uses RMI and some times the application hangs-up. The following is the thread dump i got. Please help me to find out the dead lock from this dump.
    =========================================================================
    Full thread dump Java HotSpot(TM) Server VM (1.4.1 1.4.1.02-030502-15:31-PA_RISC
    2.0 PA2.0 mixed mode):
    "RMI LeaseChecker" daemon prio=8 tid=0x006eac78 nid=20 lwp_id=280805 waiting on
    condition [0x6f042000..0x6f042530]
    at java.lang.Thread.sleep(Native Method)
    at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:307)
    at java.lang.Thread.run(Thread.java:536)
    "RMI TCP Connection(1)-192.168.174.45" daemon prio=10 tid=0x00b06570 nid=19 lwp_
    id=280803 runnable [0x6f0c3000..0x6f0c3530]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73aea6d8> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:66)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
    42)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
    .java:701)
    at java.lang.Thread.run(Thread.java:536)
    "MultiThreadedTimerMain" prio=10 tid=0x0004c660 nid=18 lwp_id=280759 in Object.w
    ait() [0x6f144000..0x6f144530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73adacb8> (a jp.co.nec.diosa.fw.util.timer.TaskQueue)
    at java.lang.Object.wait(Object.java:426)
    at jp.co.nec.diosa.fw.util.timer.MultiThreadedTimerThread.mainLoop(Multi
    ThreadedTimerThread.java:174)
    - locked <0x73adacb8> (a jp.co.nec.diosa.fw.util.timer.TaskQueue)
    at jp.co.nec.diosa.fw.util.timer.MultiThreadedTimerThread.run(MultiThrea
    dedTimerThread.java:115)
    "RMI RenewClean-[192.168.174.45:62731]" daemon prio=10 tid=0x0004c3a0 nid=16 lwp
    _id=280747 runnable [0x6f27b000..0x6f27b530]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x76400468> (a java.io.BufferedInputStream)
    at java.io.DataInputStream.readByte(DataInputStream.java:276)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
    at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
    at sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.jav
    a:328)
    at sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:
    144)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCCli
    ent.java:539)
    at java.lang.Thread.run(Thread.java:536)
    "GC Daemon" daemon prio=10 tid=0x0004c0e0 nid=14 lwp_id=280709 in Object.wait()
    [0x6f37d000..0x6f37d530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a00588> (a sun.misc.GC$LatencyLock)
    at sun.misc.GC$Daemon.run(GC.java:100)
    - locked <0x73a00588> (a sun.misc.GC$LatencyLock)
    "RMI Reaper" prio=10 tid=0x0004bf80 nid=13 lwp_id=280708 in Object.wait() [0x762
    fe000..0x762fe530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x739ffb88> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
    - locked <0x739ffb88> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
    at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:330)
    at java.lang.Thread.run(Thread.java:536)
    "Thread-1" daemon prio=10 tid=0x0004be20 nid=12 lwp_id=280707 in Object.wait() [
    0x7637f000..0x7637f530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x739ffe80> (a java.util.TaskQueue)
    at java.lang.Object.wait(Object.java:426)
    at java.util.TimerThread.mainLoop(Timer.java:403)
    - locked <0x739ffe80> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:382)
    "RMI TCP Accept-0" daemon prio=10 tid=0x0004bcc0 nid=11 lwp_id=280706 runnable [
    0x7796b000..0x7796b530]
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
    - locked <0x739ffbe0> (a java.net.PlainSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:439)
    at java.net.ServerSocket.accept(ServerSocket.java:410)
    at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:334)
    at java.lang.Thread.run(Thread.java:536)
    "Signal Dispatcher" daemon prio=10 tid=0x0004b740 nid=8 lwp_id=280652 waiting on
    condition [0x00000000..0xffffffff]
    "Finalizer" daemon prio=10 tid=0x0004b5e0 nid=5 lwp_id=280644 in Object.wait() [
    0x77b7f000..0x77b7f530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a03960> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
    - locked <0x73a03960> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=10 tid=0x0004b480 nid=4 lwp_id=280643 in Object.
    wait() [0x79c08000..0x79c08530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a039c8> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:426)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
    - locked <0x73a039c8> (a java.lang.ref.Reference$Lock)
    "main" prio=10 tid=0x0004b320 nid=1 lwp_id=280621 runnable [0x79ff1000..0x79ff19
    50]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73ac02f8> (a java.io.BufferedInputStream)
    at java.io.DataInputStream.readByte(DataInputStream.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
    189)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
    at jp.co.nec.diosa.fw.ms.service.Core_Stub.configure(Unknown Source)
    at jp.co.nec.diosa.utilapp.JUtilityApplication.<init>(JUtilityApplicatio
    n.java:1083)
    at jp.co.nec.diosa.utilapp.JUtilityAppServer.getUtilityAppReference(JUti
    lityAppServer.java:185)
    at jp.co.nec.diosa.utilapp.JUtilityAppServer.<init>(JUtilityAppServer.ja
    va:114)
    at jp.co.nec.diosa.utilapp.JUtilityAppServer.main(JUtilityAppServer.java
    :216)
    "VM Thread" prio=10 tid=0x0010daa8 nid=3 lwp_id=280642 runnable
    "VM Periodic Task Thread" prio=8 tid=0x0010db28 nid=6 lwp_id=280650 waiting on c
    ondition
    "Suspend Checker Thread" prio=10 tid=0x0010dba8 nid=7 lwp_id=280651 runnable
    Full thread dump Java HotSpot(TM) Server VM (1.4.1 1.4.1.02-030502-15:31-PA_RISC
    2.0 PA2.0 mixed mode):
    "Thread-2" prio=10 tid=0x0004d0c0 nid=23 lwp_id=280801 in Object.wait() [0x6eef4
    000..0x6eef4530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73acdfc8> (a jp.co.nec.diosa.joba.appl.GuiProcessingDaem
    on)
    at java.lang.Object.wait(Object.java:426)
    at jp.co.nec.diosa.joba.appl.GuiProcessingDaemon.process(GuiProcessingDa
    emon.java:257)
    - locked <0x73acdfc8> (a jp.co.nec.diosa.joba.appl.GuiProcessingDaemon)
    at jp.co.nec.diosa.joba.appl.GuiProcessingDaemon.run(GuiProcessingDaemon
    .java:196)
    at java.lang.Thread.run(Thread.java:536)
    "RMI LeaseChecker" daemon prio=8 tid=0x0004cca0 nid=19 lwp_id=280777 waiting on
    condition [0x6f0f8000..0x6f0f8530]
    at java.lang.Thread.sleep(Native Method)
    at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:307)
    at java.lang.Thread.run(Thread.java:536)
    "RMI TCP Connection(1)-192.168.174.45" daemon prio=10 tid=0x00235b30 nid=18 lwp_
    id=280768 runnable [0x6f179000..0x6f179530]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73ace8c8> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:66)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
    42)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
    .java:701)
    at java.lang.Thread.run(Thread.java:536)
    "RMI Reaper" prio=10 tid=0x0004cb40 nid=17 lwp_id=280758 in Object.wait() [0x6f1
    fa000..0x6f1fa530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73acea78> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
    - locked <0x73acea78> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
    at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:330)
    at java.lang.Thread.run(Thread.java:536)
    "RMI TCP Accept-0" daemon prio=10 tid=0x0004c9e0 nid=16 lwp_id=280757 runnable [
    0x6f27b000..0x6f27b530]
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
    - locked <0x73aceaf8> (a java.net.PlainSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:439)
    at java.net.ServerSocket.accept(ServerSocket.java:410)
    at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:334)
    at java.lang.Thread.run(Thread.java:536)
    "Thread-1" daemon prio=10 tid=0x0004c880 nid=15 lwp_id=280755 in Object.wait() [
    0x6f2fc000..0x6f2fc530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73acebb0> (a java.util.TaskQueue)
    at java.lang.Object.wait(Object.java:426)
    at java.util.TimerThread.mainLoop(Timer.java:403)
    - locked <0x73acebb0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:382)
    "GC Daemon" daemon prio=10 tid=0x0004c5c0 nid=13 lwp_id=280741 in Object.wait()
    [0x762fe000..0x762fe530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a4d630> (a sun.misc.GC$LatencyLock)
    at sun.misc.GC$Daemon.run(GC.java:100)
    - locked <0x73a4d630> (a sun.misc.GC$LatencyLock)
    "RMI RenewClean-[192.168.174.45:62731]" daemon prio=10 tid=0x0004c460 nid=12 lwp
    _id=280740 runnable [0x7637f000..0x7637f530]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x76408468> (a java.io.BufferedInputStream)
    at java.io.DataInputStream.readByte(DataInputStream.java:276)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
    at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
    at sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.jav
    a:328)
    at sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:
    144)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCCli
    ent.java:539)
    at java.lang.Thread.run(Thread.java:536)
    "Signal Dispatcher" daemon prio=10 tid=0x0004bd80 nid=8 lwp_id=280647 waiting on
    condition [0x00000000..0xffffffff]
    "Finalizer" daemon prio=10 tid=0x0004bc20 nid=5 lwp_id=280635 in Object.wait() [
    0x77b7f000..0x77b7f530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a4da48> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
    - locked <0x73a4da48> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=10 tid=0x0004bac0 nid=4 lwp_id=280634 in Object.
    wait() [0x79c08000..0x79c08530]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x73a4dab0> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:426)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
    - locked <0x73a4dab0> (a java.lang.ref.Reference$Lock)
    "main" prio=10 tid=0x0004b960 nid=1 lwp_id=280616 runnable [0x79ff1000..0x79ff19
    50]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73ae1260> (a java.io.BufferedInputStream)
    at java.io.DataInputStream.readByte(DataInputStream.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
    189)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
    at jp.co.nec.diosa.fw.ms.service.Core_Stub.filterFilesForCurrentHost(Unk
    nown Source)
    at jp.co.nec.diosa.joba.appl.JobGateway.filterFilesForIncomingHost(JobGa
    teway.java:342)
    at jp.co.nec.diosa.joba.event.coreevent.SGReadingEvent.run(SGReadingEven
    t.java:322)
    at jp.co.nec.diosa.joba.event.coreevent.StartupSGReadingEvent.run(Startu
    pSGReadingEvent.java:86)
    at jp.co.nec.diosa.joba.event.coreevent.StartupSGReadingEvent.process(St
    artupSGReadingEvent.java:75)
    at jp.co.nec.diosa.joba.appl.JobMain.readSGFile(JobMain.java:1401)
    at jp.co.nec.diosa.joba.appl.JobMain.init(JobMain.java:752)
    at jp.co.nec.diosa.joba.appl.JobMain.main(JobMain.java:1014)
    "VM Thread" prio=10 tid=0x0010daa8 nid=3 lwp_id=280626 runnable
    "VM Periodic Task Thread" prio=8 tid=0x0010db28 nid=6 lwp_id=280645 waiting on c
    ondition
    "Suspend Checker Thread" prio=10 tid=0x0010dba8 nid=7 lwp_id=280646 runnable
    =========================================================================

    Hi Owen,
    Thank u for ur immediate reply on my doubt, but still my doubt not got clear.
    If u look into the locked threads, the lock is happened in RMI layer. Concider following two threads:
    -----------------------------------thread 1
    "RMI TCP Connection(1)-192.168.174.45" daemon prio=10 tid=0x00b06570 nid=19 lwp_id=280803 runnable [0x6f0c3000..0x6f0c3530]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73aea6d8> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:66)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
    at java.lang.Thread.run(Thread.java:536)
    --------------------------------------- thread 2----------
    "main" prio=10 tid=0x0004b960 nid=1 lwp_id=280616 runnable [0x79ff1000..0x79ff1950]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    - locked <0x73ae1260> (a java.io.BufferedInputStream)
    at java.io.DataInputStream.readByte(DataInputStream.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:189)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
    at jp.co.nec.diosa.fw.ms.service.Core_Stub.filterFilesForCurrentHost(Unknown Source)
    at jp.co.nec.diosa.joba.appl.JobGateway.filterFilesForIncomingHost(JobGateway.java:342)
    at jp.co.nec.diosa.joba.event.coreevent.SGReadingEvent.run(SGReadingEvent.java:322)
    at jp.co.nec.diosa.joba.event.coreevent.StartupSGReadingEvent.run(StartupSGReadingEvent.java:86)
    at jp.co.nec.diosa.joba.event.coreevent.StartupSGReadingEvent.process(StartupSGReadingEvent.java:75)
    at jp.co.nec.diosa.joba.appl.JobMain.readSGFile(JobMain.java:1401)
    at jp.co.nec.diosa.joba.appl.JobMain.init(JobMain.java:752)
    at jp.co.nec.diosa.joba.appl.JobMain.main(JobMain.java:1014)
    Both the threads get locked in getting BufferedInputStread in RMI. If u can suggest some more hints that will very much helpful for me.
    Thanks in advance,
    Suresh Kumar

Maybe you are looking for

  • 1st generation Time Capsule - unstable internet connection

    Hello, I just bought new mac (iMac 27') and Time Capsule (1st generation firmware 7.6.3) When i connected Time Capsule instead my old router, internet connection is very tricky. When my iMac is connected by Lan cable and Wifi on mac is off , everythi

  • Replacing Internal DVD Drive with HDD in Mac Mini?

    Has anyone tried replacing the internal DVD drive with a hard drive, giving you TWO internal hard drives? I think you need a cable to match up the SATA connectors. Then you could use a USB external enclosure for the DVD. Thanks.

  • Imac to epson stylist r2400

    Just purchased imac (2012) and need to connect to an espson sylist R2400.  Printer cable is firewire 400.  What adapter do I need? 

  • Where have the shortcut website links gone?

    I know this sounds lame, but where have my icons for websites gone? I guess Firefox updates the browser automatically because I did not update it. And now I log on this morning and my Facebook, Wikipedia, Pandora, etc shortcut icons are gone. I loved

  • Can I restore my deleted administrator account?

    I did something very very bad...I have 2 accounts on my macbook air, an administrator account which was set up by my sister when it was first bought, and a standard account that I created later on (admin is for work, standard is for my personal stuff