|
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.
|