You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by bu...@apache.org on 2003/04/13 09:37:33 UTC

DO NOT REPLY [Bug 18977] New: - Duplicate ID reported in ListItemLabel

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18977>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18977

Duplicate ID reported in ListItemLabel

           Summary: Duplicate ID reported in ListItemLabel
           Product: Fop
           Version: 0.20.5
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: general
        AssignedTo: fop-dev@xml.apache.org
        ReportedBy: p.kullmann@arenae.ch


I have a large fo-document generated by docbook with the following problem: FOP
complains about 'The id "id2914022" already exists in this document' (although
it doesn't).

Unfortunately, I haven't been able to reduce the document to a small size and
still reproduce the error. But I think I know where the problem lies and have
patched fop to make it work for me. 

In a particular instance of a fo:list-item in my document ListItemLabel.layout
is called twice (with different BlockAreas). In the second call the duplicate ID
error is generated.

I have patched org.apache.fop.fo.flow.ListItemLabel layout to:

-bash-2.05b$ cvs diff src/org/apache/fop/fo/flow/ListItemLabel.java
Index: src/org/apache/fop/fo/flow/ListItemLabel.java
===================================================================
RCS file:
/home/cvspublic/xml-fop/src/org/apache/fop/fo/flow/Attic/ListItemLabel.java,v
retrieving revision 1.11.2.6
diff -r1.11.2.6 ListItemLabel.java
97,106c97,109
<         String id = this.properties.get("id").getString();
<         try {
<             area.getIDReferences().initializeID(id, area);
<         }
<         catch(FOPException e) {
<             if (!e.isLocationSet()) {
<                 e.setLocation(systemId, line, column);
<             }
<             throw e;
<         }
---
>       if (this.marker == START) {
>           String id = this.properties.get("id").getString();
>           try {
>               area.getIDReferences().initializeID(id, area);
>           }
>           catch(FOPException e) {
>               if (!e.isLocationSet()) {
>                   e.setLocation(systemId, line, column);
>               }
>               throw e;
>           }
>           marker = 0;
>       }

It just tracks the first time layout gets called with this particular ListItemLabel.

I have no idea whether it is at all correct that a list-item-label should be
layouted on two different areas (in my case it just says "2.3.2" and shouldn't
break).

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org