Hi Chris,

looks fine now.  +1

On 8/8/18 11:35 PM, Chris Yin wrote:
Hi, Roger

Many thanks for your review and comments, inline and updated new webrev as 
below, thanks

http://cr.openjdk.java.net/~xyin/8208483/webrev.05/

On 8 Aug 2018, at 9:52 PM, Roger Riggs <roger.ri...@oracle.com> wrote:

Hi Chris,

Each of these tests is going to spawn a new process (/othervm). That's a lot of 
overhead for a short test.
Thank you for checking this, actually used /othervm here is intentional to make 
object factories working correctly, I’m not sure why yet, just guess jtreg 
agentvm mode will affect object factory loader which caused object factory not 
working. For example, if I removed /othervm from LookupWithAnyAttrProp.java 
then run 'jtreg -agentvm -v:summary -testjdk:xxx -a 
LookupWithAnyAttrProp.java’, test will failed to complain lookup returned 
object is com.sun.jndi.dns.DnsContext instead of TestDnsObject, that was 
unexpected. (I used latest jtreg version with jdk12, same result)
yes, /othervm is needed to avoid interference with other tests
Can these be written as TestNG tests so they run quicker and more tests be in a 
single source file
and run in single VM?
That's a good idea, but per current tests situation, guess it’s hard, 2 points 
as below
1. As above mentioned, for factory related tests, we have to specify /othervm 
to make object factory working, that may not suitable for TestNG
/othervm can be used with testng
2. Each test along with a .dns dump file, even the test logic are very close, 
the dumped messages maybe very different. If using TestNG 1 test file with 
multiple tests, it will be more complex to manage/maintain those dump files 
(like create/update dump file per test, search/load dump file when run each 
test etc.)
As a thought experiment, and perhaps worth a prototype and especially if there are more tests to write.

The testname/dns might need to be refactored out from the test class name, but if I understand the local server case, it creates a new local server for each test with a new port and environment. With no overlap between the test data, a clean separation between the tests at runtime may be possible
with not too much work.

Thanks, Roger



@Override should be on its own line so the method signature is on a line by 
itself too.
Setup your IDE to use the formatting conventions and let it reformat.
Sure, fixed, changed my IDE to use that style

LookupFactoryBase.java: 67 / 84  - Be consistent about the form of messages,
  I prefer the Expected xxx but found yyy form.   (no need to say it failed, it 
threw an exception).
Fixed as you suggested form

The imports should be before the comment with the jtreg test description.
Fixed, thanks

Regards,
Chris

Thanks, Roger

On 8/7/18 11:41 PM, Chris Yin wrote:
Just one more minor revision to expand initContext() into test method for 
easier read, new webrev as below, thanks

http://cr.openjdk.java.net/~xyin/8208483/webrev.04/

Regards,
Chris

On 7 Aug 2018, at 5:41 PM, Chris Yin <xu.y....@oracle.com> wrote:

Hi, Vyom

Thanks a lot for your comment, I didn’t realize it, sure, I moved this constant 
to LookupFactoryBase as you suggested and also abstract the same verify logic 
into base class as ‘verifyLookupObjectAndValue’, hope that looks better, update 
new webrev as below, thanks

http://cr.openjdk.java.net/~xyin/8208483/webrev.03/

Regards,
Chris

On 7 Aug 2018, at 4:35 PM, vyom tewari <vyom.tew...@oracle.com> wrote:

Hi Chris,

Overall latest code looks good to me, one minor comment did you consider moving  "private static final String 
ATTRIBUTE_VALUE = "1.2.4.1";" in "LookupFactoryBase" ? as both LookupWithAnyAttrProp & 
LookupWithAttrProp inherit "LookupFactoryBase".

.Thanks,

Vyom


On Monday 06 August 2018 03:02 PM, Chris Yin wrote:
Hi, Vyom

Many thanks for your review and comments, inline and updated webrev as below, 
thanks

http://cr.openjdk.java.net/~xyin/8208483/webrev.01/

On 6 Aug 2018, at 4:12 PM, vyom tewari <vyom.tew...@oracle.com> wrote:

Hi Chris,

1-> DirAFactory.java, "getIbjectInstance" returns "null"  if it fails to construct object. I will 
suggest you to throw  some "RuntimeException" instead returning null. If you return null then caller of 
"getObjectInstance" had to check for null and it will end in lots of boilerplate code.
‘getObjectInstance’ methods are override from DirObjectFactory and 
ObjectFactory, per my understanding on javadoc, return null should indicate 
object cannot be created and allow other factories can be tried, feel free to 
let me know if I misunderstand something on the api doc, thanks

Paste a few javadoc here against ‘getObjectInstance’ method as below

* @return The object created; null if an object cannot be created.
* @exception Exception If this object factory encountered an exception
* while attempting to create an object, and no other object factories are
* to be tried.

2-> DirTxtFactory.java same as "DirFactory.java”.
Same as above

3-> In LookupWithAnyAttrProp/LookupWithAttrProp java create a constant for 
"1.2.4.1" and put one liner comment if possible. This is will help future 
maintainer to understand why we are comparing with this value.
Sure, created constant for “1.2.4.1” and put comment to explain that it’s pre 
defined attribute value of ‘A’, thanks

One generic comment, in most of the places i can see, you declared functions to throw 
generic exception "Exception",  please change it to specific  exception or list 
of specific exceptions if possible.
Fixed, those generic exception are generated automatically through override 
method, I removed those unused throws Exception from xxxFactory.

Thanks & Regards,
Chris

Thanks,

Vyom


On Monday 30 July 2018 02:08 PM, Chris Yin wrote:
Please review the changes to add 5 JNDI tests to com/sun/jndi/dns/FactoryTests/ 
in OpenJDK, thanks

bug: https://bugs.openjdk.java.net/browse/JDK-8208483 
<https://bugs.openjdk.java.net/browse/JDK-8208483>
webrev: http://cr.openjdk.java.net/~xyin/8208483/webrev.00/ 
<http://cr.openjdk.java.net/~xyin/8208483/webrev.00/>

Regards,
Chris

Reply via email to