On Wed, 31 Oct 2001, Howard Stearns wrote:
> I'm looking for
>
> reports of progress,
> suggested workarounds, or
> suggestions for getting help (e.g., contacting anyone with offers to
> reproduce)
>
> for the "No more DTM IDs" or "ArrayIndexOutOfBounds" problem.
I just encountered this problem this morning myself. The issue seems to
stem from the low size (22 bits) set in org/apache/xml/dtm/DTMManager.java
for IDENT_DTM_NODE_BITS. The process of transforming large XML documents
simple overwhelms this - especially if the stylesheets make use of loops
and xml:variable/xml:param (we encountered it generating HTML with a few
hundred select options from a 1.5 Mb XML file). Our workaround (obviously
not a long term solution) was to factor the xml:variable expressions out
of the xsl:for-each expressions to lower the number of nodes that were
generated during the transform.
I have been looking at org/apache/xml/dtm/DTMManager.java to try and see
what immediate impact increasing IDENT_DTM_NODE_BITS to around 26 bits and
recompiling would have. This looks like something that should be
re-examined in terms of its 'hardwiredness'. I also wonder if 'int' is the
appropriate bit vector length to be used for node identifiers - I think
'long' may be a better long term fit since it appears that increasing the
number of nodes immediately begins noticably impacting the number of
documents permitted adversely.
If anyone else has suggestions, I'm interested in this as well.
--
Benjamin Franz
"Code as if whoever maintains your code is a violent
psychopath who knows where you live."
-- Nancy Lebovitz, the button lady