diff options
author | Jan Christopher Vogt <oss.nsp@cvogt.org> | 2016-11-03 23:49:29 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-03 23:49:29 -0400 |
commit | fd849d293448d55c6bcb6f8440f44838b51fc860 (patch) | |
tree | a55f12060066cbe6973a2e0bfd572181db6887c9 | |
parent | 775a9582942e64bf492687194e016f2034a81feb (diff) | |
parent | d09063685d6ce790ad9f83e469f4179aeafea96a (diff) | |
download | cbt-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.java | 6 | ||||
-rw-r--r-- | nailgun_launcher/ThreadLocalOutputStream.java | 4 | ||||
-rw-r--r-- | nailgun_launcher/TrapSecurityManager.java | 2 | ||||
-rw-r--r-- | stage1/URLClassLoader.scala | 2 | ||||
-rw-r--r-- | stage1/logger.scala | 11 |
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) } |