aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Christopher Vogt <oss.nsp@cvogt.org>2016-11-03 23:49:29 -0400
committerGitHub <noreply@github.com>2016-11-03 23:49:29 -0400
commitfd849d293448d55c6bcb6f8440f44838b51fc860 (patch)
treea55f12060066cbe6973a2e0bfd572181db6887c9
parent775a9582942e64bf492687194e016f2034a81feb (diff)
parentd09063685d6ce790ad9f83e469f4179aeafea96a (diff)
downloadcbt-fd849d293448d55c6bcb6f8440f44838b51fc860.tar.gz
cbt-fd849d293448d55c6bcb6f8440f44838b51fc860.tar.bz2
cbt-fd849d293448d55c6bcb6f8440f44838b51fc860.zip
Merge pull request #297 from cvogt/fix-bugs
Fix bugs
-rw-r--r--nailgun_launcher/CbtURLClassLoader.java (renamed from nailgun_launcher/CBTUrlClassLoader.java)2
-rw-r--r--nailgun_launcher/NailgunLauncher.java6
-rw-r--r--nailgun_launcher/ThreadLocalOutputStream.java4
-rw-r--r--nailgun_launcher/TrapSecurityManager.java2
-rw-r--r--stage1/URLClassLoader.scala2
-rw-r--r--stage1/logger.scala11
6 files changed, 20 insertions, 7 deletions
diff --git a/nailgun_launcher/CBTUrlClassLoader.java b/nailgun_launcher/CbtURLClassLoader.java
index b799bc0..38fc905 100644
--- a/nailgun_launcher/CBTUrlClassLoader.java
+++ b/nailgun_launcher/CbtURLClassLoader.java
@@ -4,7 +4,7 @@ import java.net.*;
import java.util.*;
import static cbt.Stage0Lib.*;
import java.util.concurrent.ConcurrentHashMap;
-class CbtURLClassLoader extends java.net.URLClassLoader{
+public class CbtURLClassLoader extends java.net.URLClassLoader{
public String toString(){
return (
super.toString()
diff --git a/nailgun_launcher/NailgunLauncher.java b/nailgun_launcher/NailgunLauncher.java
index b1daf2a..6639218 100644
--- a/nailgun_launcher/NailgunLauncher.java
+++ b/nailgun_launcher/NailgunLauncher.java
@@ -67,13 +67,13 @@ public class NailgunLauncher{
System.out.getClass().getDeclaredField("streams"); // nailgun ThreadLocalPrintStream
assert(System.out.getClass().getName() == "com.martiansoftware.nailgun.ThreadLocalPrintStream");
} catch( NoSuchFieldException e ){
- System.setOut( new PrintStream(new ThreadLocalOutputStream(System.out)) );
+ System.setOut( new PrintStream(new ThreadLocalOutputStream(System.out), true) );
}
try{
System.err.getClass().getDeclaredField("streams"); // nailgun ThreadLocalPrintStream
- assert(System.out.getClass().getName() == "com.martiansoftware.nailgun.ThreadLocalPrintStream");
+ assert(System.err.getClass().getName() == "com.martiansoftware.nailgun.ThreadLocalPrintStream");
} catch( NoSuchFieldException e ){
- System.setErr( new PrintStream(new ThreadLocalOutputStream(System.err)) );
+ System.setErr( new PrintStream(new ThreadLocalOutputStream(System.err), true) );
}
// ---------------------
diff --git a/nailgun_launcher/ThreadLocalOutputStream.java b/nailgun_launcher/ThreadLocalOutputStream.java
index c12b775..0b106d7 100644
--- a/nailgun_launcher/ThreadLocalOutputStream.java
+++ b/nailgun_launcher/ThreadLocalOutputStream.java
@@ -27,4 +27,8 @@ public class ThreadLocalOutputStream extends OutputStream{
// so probably this is not a problem performance
get().write(b);
}
+
+ public void flush() throws IOException{
+ get().flush();
+ }
}
diff --git a/nailgun_launcher/TrapSecurityManager.java b/nailgun_launcher/TrapSecurityManager.java
index 1626787..48e152b 100644
--- a/nailgun_launcher/TrapSecurityManager.java
+++ b/nailgun_launcher/TrapSecurityManager.java
@@ -72,7 +72,7 @@ public class TrapSecurityManager extends ProxySecurityManager{
}
public static boolean isTrappedExit( Throwable t ){
- return t instanceof RuntimeException && t.getMessage().startsWith(prefix);
+ return t instanceof RuntimeException && t.getMessage() != null && t.getMessage().startsWith(prefix);
}
public static int exitCode( Throwable t ){
diff --git a/stage1/URLClassLoader.scala b/stage1/URLClassLoader.scala
index 5014cee..ff8d2a1 100644
--- a/stage1/URLClassLoader.scala
+++ b/stage1/URLClassLoader.scala
@@ -3,7 +3,7 @@ package cbt
import java.net._
import scala.util.Try
-class URLClassLoader( classPath: ClassPath, parent: ClassLoader )( implicit val logger: Logger )
+case class URLClassLoader( classPath: ClassPath, parent: ClassLoader )( implicit val logger: Logger )
extends java.net.URLClassLoader(
classPath.strings.map( p => new URL("file:" ++ p) ).toArray,
parent
diff --git a/stage1/logger.scala b/stage1/logger.scala
index 0b352a1..57f0cfa 100644
--- a/stage1/logger.scala
+++ b/stage1/logger.scala
@@ -8,12 +8,21 @@ package cbt
* We can replace this with something more sophisticated eventually.
*/
case class Logger(enabledLoggers: Set[String], start: Long) {
- def this(enabledLoggers: Option[String], start: Long) = this( enabledLoggers.toVector.flatMap( _.split(",") ).toSet, start )
+ def this(enabledLoggers: Option[String], start: Long) = {
+ this(
+ enabledLoggers.toVector.flatMap( _.split(",") ).toSet,
+ start
+ )
+ }
+
+ val disabledLoggers: Set[String] = enabledLoggers.filter(_.startsWith("-")).map(_.drop(1))
def log(name: String, msg: => String) = {
if(
+ (
(enabledLoggers contains name)
|| (enabledLoggers contains "all")
+ ) && !(disabledLoggers contains name)
){
logUnguarded(name, msg)
}