Hi Thierry,

             I had modify MainPEITCacheApplication to override the stop but 
still not stopping

/////////////////////////////////////////////////////////////
MainPEITCacheApplication 
/////////////////////////////////////////////////////////////

public class MainPEITCacheApplication extends Application {
        CompositeCacheManager ccm=null;
        String cachePropLoc=null;
        /**
         * A method to instantiate MainPEITCacheApplication
         * @param cachePropLoc String location of the cache property file
         */
        public MainPEITCacheApplication(String cachePropLoc){
                this.cachePropLoc=cachePropLoc;
        }
    /** 
     * Creates a root Restlet that will receive all incoming calls. 
     */  
        @Override
        public synchronized Restlet createInboundRoot() {
                
        Router router = new Router(getContext());  
        /*
         * 
         */
        //router.attach("/cache", CacheManagerResource.class);
        router.attach("/", CacheManagerResource.class);
        
        router.attach("/{region}",CacheManagerResource.class);
        
        TemplateRoute route= router.attach("/{region}/{dynamicurl}", 
CacheManagerResource.class);
        Variable v=new Variable(Variable.TYPE_ALL);
        route.getTemplate().getVariables().put("dynamicurl", v);
        
        try {
                ccm = CompositeCacheManager.getUnconfiguredInstance();
                Properties props = new Properties(); 
                props.load(new FileInputStream(this.cachePropLoc));
                ccm.configure(props);
                } catch (Exception ex) {
                        ex.printStackTrace();
                }
        
                return router;  
    }  
        
         @Override
         public synchronized void stop() throws Exception {
                        if(ccm!=null){
                                ccm.release();
                                ccm.shutDown();
                                ccm=null;
                        }
                super.stop();
         }

}

///////////////////////////////////////////////////////////////////////////////////////////////////
Jstack Output
///////////////////////////////////////////////////////////////////////////////////////////////////
C:\Program Files\Java\jdk1.6.0_03\bin>jps -l -m
5484 com.ti.itg.peit.peitcache.actions.TestApp c:\webappsproperties\slaveconfig.
xml
3828 sun.tools.jps.Jps -l -m
2056
3700

C:\Program Files\Java\jdk1.6.0_03\bin>jstack 5484
2010-04-20 20:11:19
Full thread dump Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode, sharing):

"DestroyJavaVM" prio=6 tid=0x003c7c00 nid=0x119c waiting on condition [0x0000000
0..0x00affd4c]
   java.lang.Thread.State: RUNNABLE

"RMI RenewClean-[10.10.132.184:50006]" daemon prio=6 tid=0x03550800 nid=0x1610 i
n Object.wait() [0x03a1f000..0x03a1fa94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x24606ab0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x24606ab0> (a java.lang.ref.ReferenceQueue$Lock)
        at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(Unknow
n Source)
        at java.lang.Thread.run(Unknown Source)

"GC Daemon" daemon prio=2 tid=0x0354ec00 nid=0x1278 in Object.wait() [0x039cf000
..0x039cfb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x245d7228> (a sun.misc.GC$LatencyLock)
        at sun.misc.GC$Daemon.run(Unknown Source)
        - locked <0x245d7228> (a sun.misc.GC$LatencyLock)

"RMI Reaper" prio=6 tid=0x0354c800 nid=0x1470 in Object.wait() [0x0397f000..0x03
97fb94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x245d6830> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x245d6830> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at sun.rmi.transport.ObjectTable$Reaper.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"RMI TCP Accept-0" daemon prio=6 tid=0x0354b800 nid=0x1004 runnable [0x0392f000.
.0x0392fc14]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        - locked <0x245d6888> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unkno
wn Source)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Thread-6" daemon prio=6 tid=0x0353c000 nid=0x570 waiting on condition [0x038df0
00..0x038dfc94]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.jcs.auxiliary.remote.RemoteCacheMonitor.run(RemoteCacheMon
itor.java:168)
        at java.lang.Thread.run(Unknown Source)

"RMI Scheduler(0)" daemon prio=6 tid=0x0353ec00 nid=0x1400 waiting on condition
[0x0388f000..0x0388fd14]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x245c8d48> (a java.util.concurrent.locks.Abstra
ctQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(Unknown Source)
        at java.util.concurrent.DelayQueue.take(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"ElementEventQueue.QProcessor-1" daemon prio=6 tid=0x03540000 nid=0x1058 in Obje
ct.wait() [0x0383f000..0x0383fd94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x245adf18> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.apache.jcs.engine.control.event.ElementEventQueue.take(ElementEve
ntQueue.java:181)
        - locked <0x245adf18> (a java.lang.Object)
        at org.apache.jcs.engine.control.event.ElementEventQueue.access$300(Elem
entEventQueue.java:35)
        at org.apache.jcs.engine.control.event.ElementEventQueue$QProcessor.run(
ElementEventQueue.java:245)

"Low Memory Detector" daemon prio=6 tid=0x02c7ec00 nid=0x1450 runnable [0x000000
00..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x02c7a000 nid=0x1708 waiting on condition
[0x00000000..0x02f2f99c]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x02c79000 nid=0x1474 waiting on condition
[0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x02c78000 nid=0x15e0 runnable [0x0000000
0..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x02c6f800 nid=0x54c in Object.wait() [0x02e3f000.
.0x02e3fa94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x24544168> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x24544168> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x02c6ec00 nid=0x1408 in Object.wait() [0
x02def000..0x02defb14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x245441f8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x245441f8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x02c6d800 nid=0x158c runnable

"VM Periodic Task Thread" prio=10 tid=0x02c80400 nid=0xf1c waiting on condition


JNI global references: 857

Sincerely,
Gerald Ternola

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2590428

Reply via email to