jsr236-experts@concurrency-ee-spec.java.net

[jsr236-experts] Re: Public Review started!

From: Nathan Rauh <naterauh_at_us.ibm.com>
Date: Fri, 11 Jan 2013 13:26:25 -0600

Anthony,

I reviewed the spec and the JavaDoc again and it looks very good. I
spotted one issue and a couple of minor typos, which I'll list here.


Section 2.3.1.1 is inconsistent with ManagedTaskListener and Trigger APIs
regarding whether, by default, listener/trigger methods run in the same
context as the task.

2.3.1.1 Optional Contextual Invocation Points
The following callback methods are not contextual invocation points by
default, but may be configured as
contextual invocation points if desired:
javax.enterprise.concurrent.ManagedTaskListener
* taskAborted()
* taskSubmitted()
* taskStarting()
javax.enterprise.concurrent.Trigger
* getNextRunTime()
* skipRun()
....

javax.enterprise.concurrent.ManagedTaskListener JavaDoc API:
"Each listener method will run with the same context in which the task
runs. "

javax.enterprise.concurrent.Trigger JavaDoc API:
"Each method will run with the same context in which the task runs. The
Trigger becomes a Contextual Task "

I would say that neither of the above (Spec nor JavaDoc) has the most
desirable behavior. Because context propagation is costly, we should
allow for the container implementation to do the most efficient thing in
the default case: not having to remove any context that's already present
and not having to add any context that isn't already present. Whenever
there are cases where the application cares one way or the other about
whether callback points are contextual, the application should specify the
CONTEXTUAL_CALLBACK_HINT to guarantee the desired behavior.

I would propose that we make the following changes, to make the Spec and
JavaDoc consistent, and allow flexibility to the container.

2.3.1.1 Optional Contextual Invocation Points
The following callback methods run with unspecified context by default,
but may be configured as
contextual invocation points if desired...

javax.enterprise.concurrent.ManagedTaskListener JavaDoc API:
"Each listener method will run with unspecified context unless
CONTEXTUAL_CALLBACK_HINT is specified to control whether or not these
callback methods run under the context in which the task runs. "

javax.enterprise.concurrent.Trigger JavaDoc API:
"Each method will run with unspecified context unless
CONTEXTUAL_CALLBACK_HINT is specified to control whether or not these
methods run under the context in which the task runs. The Trigger becomes
a Contextual Task "


Minor typos:

Section 3.1.1 and Section 3.2.1:
java.enterprise.concurrent.ManagedTaskListener
should be
javax.enterprise.concurrent.ManagedTaskListener

Section 3.1.1.1.7:
execProps = new HashMap<>();
should be
execProps = new HashMap<String, String>();

Sections 3.1.8.2, 3.2.8.2, 3.3.5.2 and 3.4.6.2:
javax.sql.Connection
should be
java.sql.Connection



Nathan Rauh
____________________________________________
Software Engineer, WebSphere Application Server
IBM Rochester Bldg 002-2 C111
3605 Highway 52N
Rochester, MN 55901-7802



From: Anthony Lai <anthony.lai_at_oracle.com>
To: jsr236-experts_at_concurrency-ee-spec.java.net
Date: 01/04/2013 03:07 PM
Subject: [jsr236-experts] Public Review started!



Dear experts,

The Public Review Draft has been posted on
http://jcp.org/aboutJava/communityprocess/pr/jsr236/index.html

Public review period will end on Feb 4. Please send any feedback to the
jsr236-experts_at_concurrency-ee-spec.java.net mailing list. Readers not on
the expert group can send feedback to users_at_concurrency-ee-spec.java.net
mailing list.

Regards
Anthony