[jira] [Commented] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-22 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15936434#comment-15936434
 ] 

Kevin Bates commented on TOREE-395:
---

[~rdblue] Chip feels removing the ability to capture cell results is a bit 
extreme - so I think we should reach an agreement here.  How about I revert 
back to my original proposal by making inclusion of Console.out conditional 
based on debug tracing?  Then, when you've got your WIP PR in a more complete 
state, we could revisit its removal - since perhaps the cell capture is part of 
the pluggable display apparatus.

My primary stance is that, by default, we NOT capture cell results and that 
enabling such capture essentially requires local filesystem access (so I'd 
prefer the debug condition over a command line condition).

Thoughts?  Comments?

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-22 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15936434#comment-15936434
 ] 

Kevin Bates edited comment on TOREE-395 at 3/22/17 2:48 PM:


[~rdblue], [~senkwich] feels removing the ability to capture cell results is a 
bit extreme - so I think we should reach an agreement here.  How about I revert 
back to my original proposal by making inclusion of Console.out conditional 
based on debug tracing?  Then, when you've got your WIP PR in a more complete 
state, we could revisit its removal - since perhaps the cell capture is part of 
the pluggable display apparatus.

My primary stance is that, by default, we NOT capture cell results and that 
enabling such capture essentially requires local filesystem access (so I'd 
prefer the debug condition over a command line condition).

Thoughts?  Comments?


was (Author: kbates):
[~rdblue] Chip feels removing the ability to capture cell results is a bit 
extreme - so I think we should reach an agreement here.  How about I revert 
back to my original proposal by making inclusion of Console.out conditional 
based on debug tracing?  Then, when you've got your WIP PR in a more complete 
state, we could revisit its removal - since perhaps the cell capture is part of 
the pluggable display apparatus.

My primary stance is that, by default, we NOT capture cell results and that 
enabling such capture essentially requires local filesystem access (so I'd 
prefer the debug condition over a command line condition).

Thoughts?  Comments?

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-22 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15937098#comment-15937098
 ] 

Kevin Bates commented on TOREE-395:
---

I tend to agree and will take a look.  A little worried that it will trickle 
across multiple fronts, but that may be a premature comment.

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-22 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15936992#comment-15936992
 ] 

Kevin Bates commented on TOREE-395:
---

Thank you for your input [~mariusvniekerk].  I think this gives us consensus.  
Since the PR is in this state already, I'd say its ready to merge unless there 
are further comments.

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-20 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15933729#comment-15933729
 ] 

Kevin Bates edited comment on TOREE-395 at 3/20/17 11:20 PM:
-

Changing the initialization of {{multiOutputStream}} in ScalInterpreter.scala 
from:
{{protected val multiOutputStream = MultiOutputStream(List(Console.out, 
lastResultOut))}}
to
protected val multiOutputStream = MultiOutputStream(List(new 
ConditionalOutputStream(Console.out, logger.isDebugEnabled), lastResultOut))

appears to do the trick.  My concern is that it would require developers to 
enable debug in order to see the output they see today.  However, I also feel 
its best to error on the side of not logging potentially sensitive information 
by default.

If we took this approach, we could add the following lines to log4j.properties 
so that only the scala interpreter could be enabled for debug.

{{# Change the following to DEBUG to see interpreter results in log}}
{{log4j.logger.org.apache.toree.kernel.interpreter.scala=INFO}}


Another option is to add an interpreter argument to indicate that scala 
interpreter results should be produced (or should be silent - depending on what 
the default should be).


was (Author: kbates):
Changing the initialization of {{multiOutputStream}} in ScalInterpreter.scala 
from:
{{protected val multiOutputStream = MultiOutputStream(List(Console.out, 
lastResultOut))}}
to
{{protected val multiOutputStream = MultiOutputStream(List(new 
ConditionalOutputStream(Console.out, logger.isDebugEnabled), lastResultOut))}}
appears to do the trick.  My concern is that it would require developers to 
enable debug in order to see the output they see today.  However, I also feel 
its best to error on the side of not logging potentially sensitive information 
by default.

Another option is to add an interpreter argument to indicate that scala 
interpreter results should be produced (or should be silent - depending on what 
the default should be).

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-20 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15933109#comment-15933109
 ] 

Kevin Bates commented on TOREE-395:
---

I agree that this could be considered a security issue - particularly if the 
logged output is on a different server than the notebook (e.g., using JKG with 
nb2kg).

This appears to be a function of how the output stream is initialized.  
Currently it's setup using both {{Console.out}} and {{ByteArrayOutputStream}}.  
However, if I remove {{Console.out}} from the initialization of 
{{multiOutputStream}} in ScalaInterpreter.scala I still get the results in the 
notebook but do not see the results in the output logs.

I would propose that we change the initialization of {{multiOutputStream}} to 
only add {{Console.out}} if the logger reflects that debug is enabled or add a 
specific option that prevents such logged output.

Comments?

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-21 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15933729#comment-15933729
 ] 

Kevin Bates edited comment on TOREE-395 at 3/21/17 3:20 PM:


Changing the initialization of {{multiOutputStream}} in ScalInterpreter.scala 
from:
{{protected val multiOutputStream = MultiOutputStream(List(Console.out, 
lastResultOut))}}
to
protected val multiOutputStream = MultiOutputStream(List(new 
ConditionalOutputStream(Console.out, logger.isDebugEnabled), lastResultOut))

appears to do the trick.  My concern is that it would require developers to 
enable debug in order to see the output they see today.  However, I also feel 
its best to error on the side of not logging potentially sensitive information 
by default.

If we took this approach, we could add the following lines to log4j.properties 
so that only the scala interpreter could be enabled for debug.

{{# Change the following to DEBUG to see interpreter results in log}}
{{log4j.logger.org.apache.toree.kernel.interpreter.scala=INFO}}


Other options are to add an interpreter argument to indicate that scala 
interpreter results should be produced (or should be silent - depending on what 
the default should be) or remove the code to post to the console altogether 
(and match the other interpreters).


was (Author: kbates):
Changing the initialization of {{multiOutputStream}} in ScalInterpreter.scala 
from:
{{protected val multiOutputStream = MultiOutputStream(List(Console.out, 
lastResultOut))}}
to
protected val multiOutputStream = MultiOutputStream(List(new 
ConditionalOutputStream(Console.out, logger.isDebugEnabled), lastResultOut))

appears to do the trick.  My concern is that it would require developers to 
enable debug in order to see the output they see today.  However, I also feel 
its best to error on the side of not logging potentially sensitive information 
by default.

If we took this approach, we could add the following lines to log4j.properties 
so that only the scala interpreter could be enabled for debug.

{{# Change the following to DEBUG to see interpreter results in log}}
{{log4j.logger.org.apache.toree.kernel.interpreter.scala=INFO}}


Another option is to add an interpreter argument to indicate that scala 
interpreter results should be produced (or should be silent - depending on what 
the default should be).

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TOREE-395) Provide a way to disable automatic printing of results in Toree Scala

2017-03-21 Thread Kevin Bates (JIRA)

[ 
https://issues.apache.org/jira/browse/TOREE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15934841#comment-15934841
 ] 

Kevin Bates commented on TOREE-395:
---

This is great news Ryan - thanks for the update.  I apologize for not taking a 
closer look at the referenced PR.  The more I thought about things and realized 
that the other interpreters (Toree and otherwise) didn't produce this output, 
the more I leaned to removing this capability entirely.

When do you anticipate this PR getting completed?

> Provide a way to disable automatic printing of results in Toree Scala
> -
>
> Key: TOREE-395
> URL: https://issues.apache.org/jira/browse/TOREE-395
> Project: TOREE
>  Issue Type: Improvement
>Affects Versions: 0.2.0
>Reporter: Kun Liu
>
> Scala REPL supports a flag, ":silent" to enable/disable automatic printing of 
> results (those messages begin with "res"). This is also supported in Spark 
> shell. But for Toree Scala kernel, this flag is not supported. Thus the 
> result of a cell would be always printed.
> But if there is any logging mechanism, the results would be recorded in a log 
> file, while this may not be desirable. For instance, a user may not want any 
> sensitive data logged when running "dataRDD.take(5)" in a cell.
> Also found the possible source codes for this:
> https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala
> There are three methods with silent: Boolean = false as parameter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (TOREE-437) Cell interrupts do not occur in background

2017-09-07 Thread Kevin Bates (JIRA)
Kevin Bates created TOREE-437:
-

 Summary: Cell interrupts do not occur in background
 Key: TOREE-437
 URL: https://issues.apache.org/jira/browse/TOREE-437
 Project: TOREE
  Issue Type: Improvement
  Components: Kernel
Affects Versions: 0.2.0
Reporter: Kevin Bates
Assignee: Kevin Bates


Whenever Toree is run in the background - either directly from the shell or 
indirectly from the Jupyter stack that is started in the background - cell 
interrupts (via ctrl-C or SIGINT from parent) are not received - resulting in 
the inability to interrupt long-running cells.

This can be most simply demonstrated by invoking run.sh into the background 
(e.g., run.sh &) then issue ctrl-C (or `kill -2 `) to no avail.

This is related to [TOREE-33] but only pertains to cell interrupt functionality 
since complete life-cycle management is assumed by the parent for the shutdown 
(double ctrl-C) scenario.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (TOREE-437) Cell interrupts do not occur in background

2017-09-07 Thread Kevin Bates (JIRA)

 [ 
https://issues.apache.org/jira/browse/TOREE-437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Bates updated TOREE-437:
--
Description: 
Whenever Toree is run in the background - either directly from the shell or 
indirectly from the Jupyter stack that is started in the background - cell 
interrupts (via ctrl-C or SIGINT from parent) are not received - resulting in 
the inability to interrupt long-running cells.

This can be most simply demonstrated by invoking run.sh into the background 
(e.g., run.sh &) then issue ctrl-C (or `kill -2 `) to no avail.

This is related to TOREE-33 but only pertains to cell interrupt functionality 
since complete life-cycle management is assumed by the parent for the shutdown 
(double ctrl-C) scenario.

  was:
Whenever Toree is run in the background - either directly from the shell or 
indirectly from the Jupyter stack that is started in the background - cell 
interrupts (via ctrl-C or SIGINT from parent) are not received - resulting in 
the inability to interrupt long-running cells.

This can be most simply demonstrated by invoking run.sh into the background 
(e.g., run.sh &) then issue ctrl-C (or `kill -2 `) to no avail.

This is related to [TOREE-33] but only pertains to cell interrupt functionality 
since complete life-cycle management is assumed by the parent for the shutdown 
(double ctrl-C) scenario.


> Cell interrupts do not occur in background
> --
>
> Key: TOREE-437
> URL: https://issues.apache.org/jira/browse/TOREE-437
> Project: TOREE
>  Issue Type: Improvement
>  Components: Kernel
>Affects Versions: 0.2.0
>Reporter: Kevin Bates
>Assignee: Kevin Bates
>  Labels: usability
>
> Whenever Toree is run in the background - either directly from the shell or 
> indirectly from the Jupyter stack that is started in the background - cell 
> interrupts (via ctrl-C or SIGINT from parent) are not received - resulting in 
> the inability to interrupt long-running cells.
> This can be most simply demonstrated by invoking run.sh into the background 
> (e.g., run.sh &) then issue ctrl-C (or `kill -2 `) to no avail.
> This is related to TOREE-33 but only pertains to cell interrupt functionality 
> since complete life-cycle management is assumed by the parent for the 
> shutdown (double ctrl-C) scenario.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (TOREE-456) Convert env variable TOREE_ALTERNATE_SIGINT to command-line option

2017-11-17 Thread Kevin Bates (JIRA)

 [ 
https://issues.apache.org/jira/browse/TOREE-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Bates updated TOREE-456:
--
Description: 
The recently added support (TOREE-437) for an alternate interrupt signal was 
implemented using the environment variable {{TOREE_ALTERNATE_SIGINT}}.  
However, we've recently learned that support for {{SPARK_YARN_USER_ENV}} is 
being removed in Spark 2.2 and its via that variable that 
{{TOREE_ALTERNATE_SIGINT}} is conveyed to the Toree kernel when launched as a 
Yarn cluster application (_cluster mode_).

As a result, and based on similar discussion on TOREE-443, it would be better 
to convey the need for an alternate interrupt signal via a command line option. 
 This way, all launch modes of Toree could set this option in the same manner - 
via {{___TOREE_OPTS___}} in {{kernel.json}}, for example.

The command-line option should be something like:
{{--alternate-sigint=}}
with a description of something like:
{{Specifies the signal to use instead of SIGINT for interrupting a long-running 
cell.  The value is a string and does not include the SIG prefix.  Use of USR2 
is recommended.}}

  was:
The recently added support (TOREE-437) for an alternate interrupt signal was 
implemented using the environment variable {{TOREE_ALTERNATE_SIGINT}}.  
However, we've recently learned that support for {{SPARK_YARN_USER_ENV}} is 
being removed in Spark 2.2 and its via that variable that 
{{TOREE_ALTERNATE_SIGINT}} is conveyed to the Toree kernel when launched as a 
Yarn cluster application (_cluster mode_).

As a result, and based on similar discussion on TOREE-443, it would be better 
to convey the need for an alternate interrupt signal via a command line option. 
 This way, all launch modes of Toree could set this option in the same manner - 
via {{__TOREE_OPTS__}} in {{kernel.json}}, for example.

The command-line option should be something like:
{{--alternate-sigint=}}
with a description of something like:
{{Specifies the signal to use instead of SIGINT for interrupting a long-running 
cell.  The value is a string and does not include the SIG prefix.  Use of USR2 
is recommended.}}


> Convert env variable TOREE_ALTERNATE_SIGINT to command-line option
> --
>
> Key: TOREE-456
> URL: https://issues.apache.org/jira/browse/TOREE-456
> Project: TOREE
>  Issue Type: Improvement
>  Components: Kernel
>Affects Versions: 0.2.0
>Reporter: Kevin Bates
>Assignee: Sanjay Saxena
>Priority: Minor
>
> The recently added support (TOREE-437) for an alternate interrupt signal was 
> implemented using the environment variable {{TOREE_ALTERNATE_SIGINT}}.  
> However, we've recently learned that support for {{SPARK_YARN_USER_ENV}} is 
> being removed in Spark 2.2 and its via that variable that 
> {{TOREE_ALTERNATE_SIGINT}} is conveyed to the Toree kernel when launched as a 
> Yarn cluster application (_cluster mode_).
> As a result, and based on similar discussion on TOREE-443, it would be better 
> to convey the need for an alternate interrupt signal via a command line 
> option.  This way, all launch modes of Toree could set this option in the 
> same manner - via {{___TOREE_OPTS___}} in {{kernel.json}}, for example.
> The command-line option should be something like:
> {{--alternate-sigint=}}
> with a description of something like:
> {{Specifies the signal to use instead of SIGINT for interrupting a 
> long-running cell.  The value is a string and does not include the SIG 
> prefix.  Use of USR2 is recommended.}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (TOREE-497) Fail to executing empty cell

2019-03-13 Thread Kevin Bates (JIRA)


[ 
https://issues.apache.org/jira/browse/TOREE-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16791773#comment-16791773
 ] 

Kevin Bates commented on TOREE-497:
---

Thank you - interesting.  So the notebook front end must prevent empty cells 
from being sent in the first place.  

And you're using Toree as s Scala kernel?

> Fail to executing empty cell
> 
>
> Key: TOREE-497
> URL: https://issues.apache.org/jira/browse/TOREE-497
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
>Reporter: Manu Zhang
>Priority: Major
>
> Executing empty cell would throw
> {code:java}
> java.lang.ClassNotFoundException: java.lang.String cannot be cast to 
> scala.collection.immutable.Map
> {code}
> at {{ExecuteRequestRelay$packageFutureResponse}}
> It seems {{Map}} is expected for {{ExecuteResult}} but a {{String}} is 
> returned when executing empty cell.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (TOREE-497) Fail to executing empty cell

2019-03-12 Thread Kevin Bates (JIRA)


[ 
https://issues.apache.org/jira/browse/TOREE-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16790830#comment-16790830
 ] 

Kevin Bates commented on TOREE-497:
---

I'm unable to reproduce this using Notebook/Lab.  However, it doesn't appear as 
though its even sending an empty cell's content for execution.

How are you producing this issue?  If not via Notebook, can you please describe 
your client application?  If you are using Notebook, please provide version 
information and whether you're using a jupyter gateway with NB2KG or not.

> Fail to executing empty cell
> 
>
> Key: TOREE-497
> URL: https://issues.apache.org/jira/browse/TOREE-497
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
>Reporter: Manu Zhang
>Priority: Major
>
> Executing empty cell would throw
> {code:java}
> java.lang.ClassNotFoundException: java.lang.String cannot be cast to 
> scala.collection.immutable.Map
> {code}
> at {{ExecuteRequestRelay$packageFutureResponse}}
> It seems {{Map}} is expected for {{ExecuteResult}} but a {{String}} is 
> returned when executing empty cell.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (TOREE-503) Cannot Use Scala Enumerations as Method Arguments

2019-08-22 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16913444#comment-16913444
 ] 

Kevin Bates edited comment on TOREE-503 at 8/22/19 5:00 PM:


Hi Alexander - thank you for opening the issue.

I can reproduce this on Spark 2.3 systems.  However, running Toree against 
Spark 2.4 does *not* reproduce the issue.  I see that emr-5.10 uses Spark 2.2.  
Are you in a position to try against 
[emr-5.20+|https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-5x.html]
 (which uses Spark 2.4)?  

Interestingly enough, the issue doesn't reproduce in any version of the 
spark-shell, but I suspect there could be some subtlety where the Spark 2.4 
REPL happens to address this.


was (Author: kbates):
Hi Alexander - thank you opening the issue.

I can reproduce this on Spark 2.3 systems.  However, running Toree against 
Spark 2.4 does *not* reproduce the issue.  I see that emr-5.10 uses Spark 2.2.  
Are you in a position to try against 
[emr-5.20+|https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-5x.html]
 (which uses Spark 2.4)?  

Interestingly enough, the issue doesn't reproduce in any version of the 
spark-shell, but I suspect there could be some subtlety where the Spark 2.4 
REPL happens to address this.

> Cannot Use Scala Enumerations as Method Arguments
> -
>
> Key: TOREE-503
> URL: https://issues.apache.org/jira/browse/TOREE-503
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
> Environment: Amazon EMR Release emr-5.10.0, JupyterLab 0.35.4
>Reporter: Alexander Gunter
>Priority: Major
>
> Under common circumstances, cells containing method calls where an argument 
> is an Enumeration will fail to compile when using the Toree kernel in 
> JupyterLab. The circumstances relate to the scoping between notebook cells. 
> The arrangement below will fail to compile, producing the shown output.
>  
> _CELL 1:_
> {code:java}
> object ExampleEnum extends Enumeration {
>    type ExampleEnum = Value
>    val A, B, C = Value
>  }{code}
> {code:java}
> defined object ExampleEnum
> {code}
>  
> _CELL 2:_
> {code:java}
> def exampleMethod(enum: ExampleEnum.Value): Unit = {
>   println(enum.toString)
> }
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> exampleMethod: (enum: ExampleEnum.Value)Unit
> A
> {code}
>  
> _CELL 3:_
> {code:java}
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> Name: Compile Error
> Message: :30: error: type mismatch;
>  found   : ExampleEnum.Value
>  required: ExampleEnum.Value
>exampleMethod(ExampleEnum.A)
>  ^
> StackTrace: 
> {code}
>  
> Note that exampleMethod() works as expected when called inside the same cell 
> as its definition (demo'd in Cell 2). It also works as expected in all cells 
> if it is instead defined in Cell 1 alongside ExampleEnum (i.e. if you merge 
> Cell1 and Cell 2).



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (TOREE-504) Version missing from shutdown_reply header

2019-08-28 Thread Kevin Bates (Jira)
Kevin Bates created TOREE-504:
-

 Summary: Version missing from shutdown_reply header
 Key: TOREE-504
 URL: https://issues.apache.org/jira/browse/TOREE-504
 Project: TOREE
  Issue Type: Bug
  Components: Kernel
Affects Versions: 0.3.0
Reporter: Kevin Bates


The 5.0 Jupyter message protocol adds a {{version}} field to [message 
headers|https://jupyter-client.readthedocs.io/en/latest/messaging.html#general-message-format].
  However, shutdown_reply headers are not setting the protocol version.  As a 
result, clients that adhere to the protocol can have issues when {{version}} is 
present in the response header as an empty string, leading to noise and 
possible incorrect behaviors following Toree's shutdown.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Commented] (TOREE-503) Cannot Use Scala Enumerations as Method Arguments

2019-09-10 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926762#comment-16926762
 ] 

Kevin Bates commented on TOREE-503:
---

Yeah, it must be something very subtle (and difficult to locate) since the pre 
2.4 Spark REPLs don't reproduce the issue.

 

Closing now.  We can reopen should some more concrete clues come up that point 
to Toree.

> Cannot Use Scala Enumerations as Method Arguments
> -
>
> Key: TOREE-503
> URL: https://issues.apache.org/jira/browse/TOREE-503
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
> Environment: Amazon EMR Release emr-5.10.0, JupyterLab 0.35.4
>Reporter: Alexander Gunter
>Priority: Major
>
> Under common circumstances, cells containing method calls where an argument 
> is an Enumeration will fail to compile when using the Toree kernel in 
> JupyterLab. The circumstances relate to the scoping between notebook cells. 
> The arrangement below will fail to compile, producing the shown output.
>  
> _CELL 1:_
> {code:java}
> object ExampleEnum extends Enumeration {
>    type ExampleEnum = Value
>    val A, B, C = Value
>  }{code}
> {code:java}
> defined object ExampleEnum
> {code}
>  
> _CELL 2:_
> {code:java}
> def exampleMethod(enum: ExampleEnum.Value): Unit = {
>   println(enum.toString)
> }
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> exampleMethod: (enum: ExampleEnum.Value)Unit
> A
> {code}
>  
> _CELL 3:_
> {code:java}
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> Name: Compile Error
> Message: :30: error: type mismatch;
>  found   : ExampleEnum.Value
>  required: ExampleEnum.Value
>exampleMethod(ExampleEnum.A)
>  ^
> StackTrace: 
> {code}
>  
> Note that exampleMethod() works as expected when called inside the same cell 
> as its definition (demo'd in Cell 2). It also works as expected in all cells 
> if it is instead defined in Cell 1 alongside ExampleEnum (i.e. if you merge 
> Cell1 and Cell 2).



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Closed] (TOREE-503) Cannot Use Scala Enumerations as Method Arguments

2019-09-10 Thread Kevin Bates (Jira)


 [ 
https://issues.apache.org/jira/browse/TOREE-503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Bates closed TOREE-503.
-
Fix Version/s: 0.3.0
 Assignee: Kevin Bates
   Resolution: Workaround

This appears to only be an issue if Toree is used on pre Spark 2.4 systems.  It 
cannot be reproduced on Spark 2.4+.  Since the same version of Toree is used in 
both cases, this implies this is probably something in Spark or some subtle 
variation related to the version of Spark.

I chose 'Workaround' because this issue can be worked around if the method and 
call to the method are in the same cell (for Spark < 2.4).  The other 
workaround is to upgrade to Spark 2.4, in which case the locality requirement 
is not applicable.

> Cannot Use Scala Enumerations as Method Arguments
> -
>
> Key: TOREE-503
> URL: https://issues.apache.org/jira/browse/TOREE-503
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
> Environment: Amazon EMR Release emr-5.10.0, JupyterLab 0.35.4
>Reporter: Alexander Gunter
>Assignee: Kevin Bates
>Priority: Major
> Fix For: 0.3.0
>
>
> Under common circumstances, cells containing method calls where an argument 
> is an Enumeration will fail to compile when using the Toree kernel in 
> JupyterLab. The circumstances relate to the scoping between notebook cells. 
> The arrangement below will fail to compile, producing the shown output.
>  
> _CELL 1:_
> {code:java}
> object ExampleEnum extends Enumeration {
>    type ExampleEnum = Value
>    val A, B, C = Value
>  }{code}
> {code:java}
> defined object ExampleEnum
> {code}
>  
> _CELL 2:_
> {code:java}
> def exampleMethod(enum: ExampleEnum.Value): Unit = {
>   println(enum.toString)
> }
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> exampleMethod: (enum: ExampleEnum.Value)Unit
> A
> {code}
>  
> _CELL 3:_
> {code:java}
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> Name: Compile Error
> Message: :30: error: type mismatch;
>  found   : ExampleEnum.Value
>  required: ExampleEnum.Value
>exampleMethod(ExampleEnum.A)
>  ^
> StackTrace: 
> {code}
>  
> Note that exampleMethod() works as expected when called inside the same cell 
> as its definition (demo'd in Cell 2). It also works as expected in all cells 
> if it is instead defined in Cell 1 alongside ExampleEnum (i.e. if you merge 
> Cell1 and Cell 2).



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Commented] (TOREE-503) Cannot Use Scala Enumerations as Method Arguments

2019-09-09 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16925958#comment-16925958
 ] 

Kevin Bates commented on TOREE-503:
---

Hi Alexander - I guess I'm inclined to close this issue because you can define 
the method in the same cell as its called.  Once you upgrade to Spark 2.4, that 
shouldn't be necessary.  In addition, my thought is that this is more about 
Spark than Toree since the same version of Toree produces different behaviors - 
depending on the version of Spark.

 

Just want to check with you first.

> Cannot Use Scala Enumerations as Method Arguments
> -
>
> Key: TOREE-503
> URL: https://issues.apache.org/jira/browse/TOREE-503
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
> Environment: Amazon EMR Release emr-5.10.0, JupyterLab 0.35.4
>Reporter: Alexander Gunter
>Priority: Major
>
> Under common circumstances, cells containing method calls where an argument 
> is an Enumeration will fail to compile when using the Toree kernel in 
> JupyterLab. The circumstances relate to the scoping between notebook cells. 
> The arrangement below will fail to compile, producing the shown output.
>  
> _CELL 1:_
> {code:java}
> object ExampleEnum extends Enumeration {
>    type ExampleEnum = Value
>    val A, B, C = Value
>  }{code}
> {code:java}
> defined object ExampleEnum
> {code}
>  
> _CELL 2:_
> {code:java}
> def exampleMethod(enum: ExampleEnum.Value): Unit = {
>   println(enum.toString)
> }
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> exampleMethod: (enum: ExampleEnum.Value)Unit
> A
> {code}
>  
> _CELL 3:_
> {code:java}
> exampleMethod(ExampleEnum.A){code}
> {code:java}
> Name: Compile Error
> Message: :30: error: type mismatch;
>  found   : ExampleEnum.Value
>  required: ExampleEnum.Value
>exampleMethod(ExampleEnum.A)
>  ^
> StackTrace: 
> {code}
>  
> Note that exampleMethod() works as expected when called inside the same cell 
> as its definition (demo'd in Cell 2). It also works as expected in all cells 
> if it is instead defined in Cell 1 alongside ExampleEnum (i.e. if you merge 
> Cell1 and Cell 2).



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Commented] (TOREE-504) Version missing from shutdown_reply header

2019-09-19 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16933543#comment-16933543
 ] 

Kevin Bates commented on TOREE-504:
---

[~lresende] - that's probably a good idea.  I had added code in jupyter to 
still tolerate the missing version since IRKernel had the same issue (as others 
might as well), but yes, it would help with Toree's "compliance".

> Version missing from shutdown_reply header
> --
>
> Key: TOREE-504
> URL: https://issues.apache.org/jira/browse/TOREE-504
> Project: TOREE
>  Issue Type: Bug
>  Components: Kernel
>Affects Versions: 0.3.0
>Reporter: Kevin Bates
>Assignee: Kevin Bates
>Priority: Major
> Fix For: 0.4.0
>
>
> The 5.0 Jupyter message protocol adds a {{version}} field to [message 
> headers|https://jupyter-client.readthedocs.io/en/latest/messaging.html#general-message-format].
>   However, shutdown_reply headers are not setting the protocol version.  As a 
> result, clients that adhere to the protocol can have issues when {{version}} 
> is present in the response header as an empty string, leading to noise and 
> possible incorrect behaviors following Toree's shutdown.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TOREE-421) KernelSecurityManager doesn't allow users to create their own thread groups

2019-10-20 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16955516#comment-16955516
 ] 

Kevin Bates commented on TOREE-421:
---

bq. enable different thread groups properly

I don't think anything has to happen to enable proper thread group creation 
other than NOT preventing its creation via the SecurityManager.  

Although I'd prefer to not have to support an additional CLI option, I'm 
wondering if a boolean option such as {{--prevent-new-thread-groups}} that 
defaults to {{false}} would be beneficial.  This would open up thread group 
creation by default, but any applications that require their prevention could 
then add the CLI option.  I realize this could be considered a "regression", 
but I suspect most won't be needing this, and applications that require its 
prevention have probably already been "trained" to not attempt thread group 
creation in the first place (due to its previous prevention).

If others feel we don't need a CLI option, we can simply remove this portion of 
the SecurityManager and move on.

Thoughts?

> KernelSecurityManager doesn't allow users to create their own thread groups
> ---
>
> Key: TOREE-421
> URL: https://issues.apache.org/jira/browse/TOREE-421
> Project: TOREE
>  Issue Type: Bug
>Reporter: Piyush Narang
>Priority: Major
>
> I'm trying to run a Spark Scala job using Toree and I'm running into some 
> issues as the code in our job calls into one of our libraries which tries to 
> create threads in its own ThreadGroup: 
> https://github.com/twitter/util/blob/develop/util-core/src/main/scala/com/twitter/concurrent/NamedPoolThreadFactory.scala#L28
> This seems to cause this check in Toree's KernelSecurityManager to trip: 
> https://github.com/apache/incubator-toree/blob/master/kernel-api/src/main/scala/org/apache/toree/security/KernelSecurityManager.scala#L121
> Stack looks like:
> {code}
> Name: java.lang.SecurityException
> Message: Not allowed to modify ThreadGroups!
> StackTrace:   at 
> org.apache.toree.security.KernelSecurityManager.checkAccess(KernelSecurityManager.scala:114)
>   at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>   at java.lang.Thread.init(Thread.java:394)
>   at java.lang.Thread.init(Thread.java:349)
>   at java.lang.Thread.(Thread.java:599)
>   at 
> com.twitter.concurrent.NamedPoolThreadFactory.newThread(NamedPoolThreadFactory.scala:32)
> ...
> {code}
> Here's a simple repro:
> {code}
> println(Thread.currentThread().getThreadGroup) // default thread group
> val group: ThreadGroup = new 
> ThreadGroup(Thread.currentThread().getThreadGroup(), "name")
> val hello = new Thread(group, new Runnable {
> def run() {
> println("hello world")
>   }
> })
> println(hello.getThreadGroup)
> hello.start
> {code}
> Any suggestions for working around this? 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TOREE-421) KernelSecurityManager doesn't allow users to create their own thread groups

2019-10-16 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16953155#comment-16953155
 ] 

Kevin Bates commented on TOREE-421:
---

Thank you for your post Chip!  I had been looking at this yesterday and had 
come to the same conclusion prior to seeing your response.  That said, its 
tremendously helpful to have insight into the history of that logic in the 
first place - thank you.

Since we know, by virtue of the SecurityManager's existing enforcement, that no 
one is leveraging this "functionality", I'm inclined to unconditionally allow 
the creation of new thread groups rather than only via a CLI option.  IMHO, the 
latter still seems inhibiting, although "safe". 

Do others have a strong opinion on this - particularly in allowing different 
thread groups other than the one Toree is running in?  From my understanding, 
any new thread groups will "inherit" the attributes (priorities, etc.) from 
Toree's.

> KernelSecurityManager doesn't allow users to create their own thread groups
> ---
>
> Key: TOREE-421
> URL: https://issues.apache.org/jira/browse/TOREE-421
> Project: TOREE
>  Issue Type: Bug
>Reporter: Piyush Narang
>Priority: Major
>
> I'm trying to run a Spark Scala job using Toree and I'm running into some 
> issues as the code in our job calls into one of our libraries which tries to 
> create threads in its own ThreadGroup: 
> https://github.com/twitter/util/blob/develop/util-core/src/main/scala/com/twitter/concurrent/NamedPoolThreadFactory.scala#L28
> This seems to cause this check in Toree's KernelSecurityManager to trip: 
> https://github.com/apache/incubator-toree/blob/master/kernel-api/src/main/scala/org/apache/toree/security/KernelSecurityManager.scala#L121
> Stack looks like:
> {code}
> Name: java.lang.SecurityException
> Message: Not allowed to modify ThreadGroups!
> StackTrace:   at 
> org.apache.toree.security.KernelSecurityManager.checkAccess(KernelSecurityManager.scala:114)
>   at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>   at java.lang.Thread.init(Thread.java:394)
>   at java.lang.Thread.init(Thread.java:349)
>   at java.lang.Thread.(Thread.java:599)
>   at 
> com.twitter.concurrent.NamedPoolThreadFactory.newThread(NamedPoolThreadFactory.scala:32)
> ...
> {code}
> Here's a simple repro:
> {code}
> println(Thread.currentThread().getThreadGroup) // default thread group
> val group: ThreadGroup = new 
> ThreadGroup(Thread.currentThread().getThreadGroup(), "name")
> val hello = new Thread(group, new Runnable {
> def run() {
> println("hello world")
>   }
> })
> println(hello.getThreadGroup)
> hello.start
> {code}
> Any suggestions for working around this? 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TOREE-421) KernelSecurityManager doesn't allow users to create their own thread groups

2019-10-16 Thread Kevin Bates (Jira)


[ 
https://issues.apache.org/jira/browse/TOREE-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16953146#comment-16953146
 ] 

Kevin Bates commented on TOREE-421:
---

Including Chip's response from the mailing list...
{quote}This was an old implementation geared towards allowing us to manage all 
launched threads so we could interrupt/kill them on request.

I'm not sure how useful this feature has been to folks, so my thought is that 
we either remove it entirely or make it a feature that can be enabled/disabled 
through a CLI option.

[[~lresende]], do you have any thoughts about which direction you'd like to go 
here?
{quote}


> KernelSecurityManager doesn't allow users to create their own thread groups
> ---
>
> Key: TOREE-421
> URL: https://issues.apache.org/jira/browse/TOREE-421
> Project: TOREE
>  Issue Type: Bug
>Reporter: Piyush Narang
>Priority: Major
>
> I'm trying to run a Spark Scala job using Toree and I'm running into some 
> issues as the code in our job calls into one of our libraries which tries to 
> create threads in its own ThreadGroup: 
> https://github.com/twitter/util/blob/develop/util-core/src/main/scala/com/twitter/concurrent/NamedPoolThreadFactory.scala#L28
> This seems to cause this check in Toree's KernelSecurityManager to trip: 
> https://github.com/apache/incubator-toree/blob/master/kernel-api/src/main/scala/org/apache/toree/security/KernelSecurityManager.scala#L121
> Stack looks like:
> {code}
> Name: java.lang.SecurityException
> Message: Not allowed to modify ThreadGroups!
> StackTrace:   at 
> org.apache.toree.security.KernelSecurityManager.checkAccess(KernelSecurityManager.scala:114)
>   at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>   at java.lang.Thread.init(Thread.java:394)
>   at java.lang.Thread.init(Thread.java:349)
>   at java.lang.Thread.(Thread.java:599)
>   at 
> com.twitter.concurrent.NamedPoolThreadFactory.newThread(NamedPoolThreadFactory.scala:32)
> ...
> {code}
> Here's a simple repro:
> {code}
> println(Thread.currentThread().getThreadGroup) // default thread group
> val group: ThreadGroup = new 
> ThreadGroup(Thread.currentThread().getThreadGroup(), "name")
> val hello = new Thread(group, new Runnable {
> def run() {
> println("hello world")
>   }
> })
> println(hello.getThreadGroup)
> hello.start
> {code}
> Any suggestions for working around this? 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)