From: <fd...@us...> - 2008-08-03 07:55:42
|
Revision: 4387 http://jnode.svn.sourceforge.net/jnode/?rev=4387&view=rev Author: fduminy Date: 2008-08-03 07:55:38 +0000 (Sun, 03 Aug 2008) Log Message: ----------- fix for bugs happening while halting JNode : - log4j complaining about not being properly configured - AbstractInputDriver's queue still trying to get events from the closed queue Modified Paths: -------------- trunk/core/src/core/org/jnode/log4j/config/Log4jConfigurePlugin.java trunk/core/src/core/org/jnode/util/Queue.java trunk/core/src/driver/org/jnode/driver/input/AbstractInputDriver.java Modified: trunk/core/src/core/org/jnode/log4j/config/Log4jConfigurePlugin.java =================================================================== --- trunk/core/src/core/org/jnode/log4j/config/Log4jConfigurePlugin.java 2008-08-02 19:25:44 UTC (rev 4386) +++ trunk/core/src/core/org/jnode/log4j/config/Log4jConfigurePlugin.java 2008-08-03 07:55:38 UTC (rev 4387) @@ -24,11 +24,12 @@ import java.awt.event.KeyEvent; import java.io.PrintStream; import java.util.Enumeration; + import javax.naming.NameNotFoundException; + import org.apache.log4j.Appender; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Level; -import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.jnode.driver.console.ConsoleManager; @@ -98,7 +99,9 @@ * @see org.jnode.plugin.Plugin#stopPlugin() */ protected void stopPlugin() throws PluginException { - LogManager.resetConfiguration(); + // Using LogManager.resetConfiguration() or LogManager.shutdown() + // can't avoid log4j WARN message about log4j not being properly configured. + // So, simply do nothing } } Modified: trunk/core/src/core/org/jnode/util/Queue.java =================================================================== --- trunk/core/src/core/org/jnode/util/Queue.java 2008-08-02 19:25:44 UTC (rev 4386) +++ trunk/core/src/core/org/jnode/util/Queue.java 2008-08-03 07:55:38 UTC (rev 4387) @@ -170,5 +170,13 @@ this.closed = true; notifyAll(); } + + /** + * Is this queue closed. + * @return + */ + public boolean isClosed() { + return closed; + } } Modified: trunk/core/src/driver/org/jnode/driver/input/AbstractInputDriver.java =================================================================== --- trunk/core/src/driver/org/jnode/driver/input/AbstractInputDriver.java 2008-08-02 19:25:44 UTC (rev 4386) +++ trunk/core/src/driver/org/jnode/driver/input/AbstractInputDriver.java 2008-08-03 07:55:38 UTC (rev 4387) @@ -148,6 +148,12 @@ final byte scancode = buf.get(0); E event = handleScancode(scancode); if ((event != null) && !event.isConsumed()) { + if (eventQueue.isClosed()) { + // the queue is closed : it usually happen while JNode is halting + // simply stop processing the events + break; + } + eventQueue.add(event); } } catch (Throwable ex) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |