Message received and understood, code improved. I'll pay more attention
next time. Looks like peer review really works around here. Thanks, Glen.
On 13.05.2005 01:38:24 Glen Mazza wrote:
> [EMAIL PROTECTED] wrote:
>
> >jeremias2005/05/12 07:13:45
> >
> > Modified:src/java/org/apache/fop/layoutmgr/table Tag:
> >Temp_KnuthStylePageBreaking TableStepper.java
> >TableContentLayoutManager.java EffRow.java
> > Log:
> > Fix for ArrayIndexOutOfBoundsException when empty grid units are involved.
> >
> >
>
> Jeremias, I don't see this as a fix--you seem to be converting a
> RunTimeException into a logical error (system runs but you get bad
> output.) The latter is many more times harder and more stressful to fix
> because with an LE we have no idea where the problem is--FOTree, Layout,
> Renderers, PDF Library, user version of JDK/Adobe Acrobat, etc., etc.
> Converting RTE's into LE's IMO does not really create rigorous, robust,
> low-maintenance coding.
>
> >
> > +public GridUnit getGridUnit(int index) {
> > +if (index >= 0 && index < gridUnits.size()) {
> > +return (GridUnit)gridUnits.get(index);
> > +} else {
> > +return null;
> > +}
> > +}
> >
> >
>
> If the caller is so incompetent to be requesting grid unit #42 for a
> system with only 10 grid units--shouldn't we have FOP to halt with the
> Array Index RTE so we can get that bug quickly identified and fixed?
> (Or, if we can't fix it immediately, put a Band-Aid fix in the caller
> instead of the callee?) The quiet returning of "null" thwarts that, and
> when users start complaining about bad output due to the LE, we won't
> know where the problem is to fix it. In addition to wearing out
> committers wading through the renderers and the PDF library when an RTE
> would have told them to quickly look at the FO package, we'll also have
> to ask the users a bunch of irrelevant questions such as their versions
> of Adobe Acrobat, etc. I don't see how an LE helps us here.
>
> I mentioned this to you earlier because of a odd change you made (line
> 98 of [1]) to the Span class to create an LE instead of an RTE should
> PSLM ask for an invalid column. I don't understand your rationale--if
> PSLM is asking for the wrong columns, the output will be messed up
> anyway. Best then to choose the solution--i.e., the RTE--that allows us
> to quickly zero in on the problem.
>
> I converted your change back[2, line 94/85] to explicitly return an
> IllegalStateException, and it was good I did so--I later had an error in
> the PSLM coding, asked for an invalid column, and quickly was informed
> by the RTE what the problem was so I could immediately fix it.
>
> Thanks,
> Glen
>
> [1]
> http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/area/Span.java?r1=1.6&r2=1.6.2.1&diff_format=h
>
> [2]
> http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/area/Span.java?r1=1.6.2.1&r2=1.6.2.2&diff_format=h
Jeremias Maerki