Hi all, I'm trying to write a basic MBean. This Mean runs a Thread which checks the file system for new files. If a new file is found it should perform some action.
My problem however is that whenever I undeploy, or stop the MBean using the jmx-console application, the MBean keeps running. I have no idea what I'm doing wrong here. Below is my code. Could somebody please tell me what it is that I'm doing wrong here? Thanks a lot, Harm de Laat Informatiefabriek The Netherlands package nl.informatiefabriek.jmxlizard; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Vector; import org.jboss.system.ServiceMBeanSupport; /** * @author harm */ public class JBossLizard extends ServiceMBeanSupport implements JBossLizardMBean, Runnable { private Thread lizard; public JBossLizard() { } public String getName() { return "JBossJMXLizard"; } /* (non-Javadoc) * @see java.lang.Runnable#run() */ public void run() { boolean running = true; while (running) { /* wait for interval milliseconds */ sleep(interval); /* do some checking */ File checkDir = new File(absoluteCheckPath); if (!checkDir.exists()) { log.warn( "Directory does not exist: " + checkDir.getAbsolutePath()); sleep(1000 * 5); // we wait for five seconds to avoid a huge system load continue; } if (!checkDir.isDirectory()) { log.warn( "Directory: " + checkDir.getAbsolutePath() + "is not a directory."); sleep(1000 * 5); continue; } /* retrieve the listing */ String[] dirlist1 = checkDir.list(); for (int i = 0; i < dirlist1.length; i++) { /* don't touch hidden files */ if (dirlist1[i].startsWith(".")) { // System.out.println("Hidden file... Leaving it untouched: " + dirlist1[i]); break; } /* get file extension */ int index = dirlist1[i].lastIndexOf('.'); String checkFileExtension = dirlist1[i] .substring(index + 1, dirlist1[i].length()) .toLowerCase(); System.out.println( "File extension is: " + checkFileExtension); /* see if it is a file we should process */ if (checkFileExtension .equals(this .getFileExtension().toLowerCase())) { System.out.println( "This is the correct file extension."); /* Create a file handler */ File f = new File(checkDir, dirlist1[i]); // process the file here! } } } System.out.println("Lizard stopped..."); } private void sleep(long howlong) { try { Thread.sleep(howlong); } catch (Exception e) { } } /* MBean methods */ protected void startService() throws Exception { // Create a new thread with this monitor lizard = new Thread(this, "JBossMonitor"); // Set it as a daemon lizard.setDaemon(true); // start the thread lizard.start(); } protected void stopService() { lizard.interrupt(); } } ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user