[PING] RFR: JDK-8150704 XALAN: ERROR: 'No more DTM IDs are available' when transforming with lots of temporary result trees
christoph.langer at sap.com
Thu Mar 10 20:27:07 UTC 2016
OK, thanks. I'll prepare the JDK 8 backport then.
> -----Original Message-----
> From: huizhe wang [mailto:huizhe.wang at oracle.com]
> Sent: Donnerstag, 10. März 2016 19:07
> To: Langer, Christoph <christoph.langer at sap.com>
> Cc: core-libs-dev at openjdk.java.net
> Subject: Re: [PING] RFR: JDK-8150704 XALAN: ERROR: 'No more DTM IDs are
> available' when transforming with lots of temporary result trees
> Hi Christoph,
> Yes, an "Oops", sort of multitasking hazard, when I saw an all-test run
> passed, I was a bit too eager to get it closed. We'll get those headers
> fixed the next time we touch them. For the result files, I didn't quite
> like them either, we could have picked up a few keywords to compare with
> than the big files. But it's okay.
> And yes, it would be good to backport the patch to 8, or 7 for that matter.
> On 3/10/2016 1:53 AM, Langer, Christoph wrote:
> > Hi Joe,
> > I've seen you have already submitted the change so I guess it's of no use
> going through the Apache License headers now...
> > I would also be willing to improve the tests although you should probably give
> me some hint on how. Is it about improving the artificial xsl to stress the fix?
> Then some help on how to achieve that would really be appreciated. I also
> don't like the way I read in reference result files and handle the line endings. I
> hope the test will run on Unix/Linuxes as well as on Windows. I tested in a
> Windows Cygwin environment.
> > Furthermore, any objections against backporting to 8?
> > Thanks for reviewing and best regards
> > Christoph
> >> -----Original Message-----
> >> From: huizhe wang [mailto:huizhe.wang at oracle.com]
> >> Sent: Mittwoch, 9. März 2016 20:05
> >> To: Langer, Christoph <christoph.langer at sap.com>
> >> Cc: core-libs-dev at openjdk.java.net
> >> Subject: Re: [PING] RFR: JDK-8150704 XALAN: ERROR: 'No more DTM IDs are
> >> available' when transforming with lots of temporary result trees
> >> Hi Langer,
> >> Thanks for the update. I'll do an all-test run. I'm okay with the
> >> TransformerTest, although it can be better. For the license header, I
> >> meant to say the whole header that includes updating the Apache License
> >> to its new format. You may update the webrev if you want. Otherwise, I
> >> can do so when I check in once all tests pass.
> >> Thanks again,
> >> Joe
> >> On 3/8/2016 3:59 PM, Langer, Christoph wrote:
> >>> Hi Joe,
> >>> answers inline.
> >>>> Thanks for reporting and providing patch for the issue! Looks like a
> >>>> nice solution that may potentially reduce memory requirement for some
> >>>> large templates. Could you also verify that the patch also fixes
> >>>> JDK-8150699  that was created the same day as yours?
> >>> Yes, which coincidence. The issue basically is the same. I've picked the bug
> >> and marked it as duplicate
> >>>> I assume the stylesheet is created to just illustrate the issue. If it's
> >>>> a real use case, then it should have made the variable global to avoid
> >>>> creating a lot of RTFs, and therefore avoid the whole "No more DTM IDs"
> >>>> issue. It would make the process a lot more efficient.
> >>> Yes, it is an artificial transformation which should recreate the issue.
> >>>> Some classes, such as Sort.java, still contain the old header, please
> >>>> update them with the new ones such as that in DOM.java.
> >>> Did that.
> >>>> The $Id section, such as the following, can all be removed, they were
> >>>> from legacy repository, misleading since it implies the file was last
> >>>> updated, in this case, in 2005:
> >>>> 20 /*
> >>>> 21 * $Id: Sort.java,v 18.104.22.168 2005/09/12 11:08:12 pvedula Exp $
> >>>> 22 */
> >>> Did that as well.
> >>>> For the new test, it's probably better to add some kind of assertion in
> >>>> the test, e.g. expected result, than failing on a broad Exception. What
> >>>> if the test passes but the transform operation isn't because of the
> >>> I've modified that part, asserting that the result matches a reference.
> >>>> The test is also not sufficient. The release methods seem to be okay.
> >>>> However, they don't seem to have been fully exercised in the test (only
> >>>> simple RTs were created?). In that sense, the sample attached in
> >>>> JDK-8150699 provided an opportunity to better verify the changes.
> >>> Yes, I had a hard time creating an artificial scenario which would
> >> the issue and would also stress all places. I was rather running into
> >> StackOverflows than out of DTM IDs. Eventually I managed to create
> >> but obviously not comprehensive enough. I also had some customer data
> >> I was eventually allowed to publish as testcase but the data was quite large
> >> the xsl very complex so the transformation would run very long. I have now
> >> included the sample from JDK-8150699 into the test as well.
> >>>> It would be good to add some javadoc or dev notes to the test. While
> >>>> consolidating tests (into TransformerTest), please make sure
> >>>> notes/javadoc are copied over or added.
> >>> I added a sentence of documentation for my testcase. For the consolidated
> >> ones I now copied what was there and added a dummy summary text for the
> >> tests where nothing was existing before.
> >>> This is the new webrev:
> >>> http://cr.openjdk.java.net/~clanger/webrevs/8150704.2/
> >>> I just ran the tests out of javax/xml/jaxp/unittest/transform. Maybe you
> >> want to do some more testing before pushing, e.g. JCK.
> >>> Let me know if I should do some further adaptions.
> >>> Thanks
> >>> Christoph
More information about the core-libs-dev