https://issues.apache.org/bugzilla/show_bug.cgi?id=50276

--- Comment #4 from Matthias Reischenbacher <matthias8...@gmx.at> 2010-12-10 
07:20:46 EST ---
(In reply to comment #3)
> (In reply to comment #0)
> > Apparently the KnuthElement's position is null (oldElement.getPosition()). I
> > attached a patch which adds an additional check in order to avoid the
> > exception. This might not be a real solution, because I'm not sure if it's
> > valid that the position is null.
> 
> I spent some more time on the validity of a null position. Auxiliary positions
> have null subposition, see InlineLayoutManager.getAuxiliaryPosition(), line:
> 597.
> 
> If a position is unwrapped often enough, this null position is reached. The
> chosen solution, i.e. not unwrapping if the null position is reached, adds a
> layer of wrapping around the null position, because later in the method all
> positions are wrapped again. Apparently that is not a problem.

Simon,

thanks for looking into this. I also had a further look at the code and I think
there is still a problem when unwrapping and wrapping positions which is
causing Bug 49870 [1]. When the InlineLayoutManager adds NonLeafPositions for
border-left and border-right it sets the sub positions to null. Unwrapping the
position causes the NonLeafPosition to get lost:
oldElement.setPosition(oldElement.getPosition().getPosition());

I'm unsure if the problem should be fixed when adding the border
NonLeafPositions in the first place or we add an additional check in the
applyChanges() method. What do you think?

Regards,
Matthias Reischenbacher

[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=49870

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to