You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2007/03/12 22:49:37 UTC

svn commit: r517415 - in /xmlgraphics/fop/trunk: src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java status.xml test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml

Author: jeremias
Date: Mon Mar 12 14:49:37 2007
New Revision: 517415

URL: http://svn.apache.org/viewvc?view=rev&rev=517415
Log:
Fixed an IllegalArgumentException for absolutely positioned block-containers with a border and no height/bpd set.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
    xmlgraphics/fop/trunk/status.xml
    xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java?view=diff&rev=517415&r1=517414&r2=517415
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Mon Mar 12 14:49:37 2007
@@ -431,6 +431,8 @@
                     }
                 }
             } else {
+                int maxbpd = context.getStackLimit().opt;
+                allocBPD = maxbpd;
                 autoHeight = true;
             }
         } else {
@@ -503,7 +505,7 @@
 
         MinOptMax range = new MinOptMax(relDims.ipd);
         BlockContainerBreaker breaker = new BlockContainerBreaker(this, range);
-        breaker.doLayout(relDims.bpd, autoHeight);
+        breaker.doLayout((autoHeight ? 0 : relDims.bpd), autoHeight);
         boolean contentOverflows = breaker.isOverflow();
         LinkedList returnList = new LinkedList();
         if (!breaker.isEmpty()) {

Modified: xmlgraphics/fop/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?view=diff&rev=517415&r1=517414&r2=517415
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Mon Mar 12 14:49:37 2007
@@ -28,6 +28,10 @@
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="JM" type="fix">
+        Fixed an IllegalArgumentException for absolutely positioned block-containers with a
+        border and no height/bpd set.
+      </action>
       <action context="Code" dev="JM" type="add">
         Add support for a two-pass production for PostScript output to minimize file size. This
         adds images only once and adds only the fonts that are really used.

Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml?view=diff&rev=517415&r1=517414&r2=517415
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block-container_absolute-position_no-height.xml Mon Mar 12 14:49:37 2007
@@ -23,7 +23,7 @@
     </p>
   </info>
   <fo>
-    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
       <fo:layout-master-set>
         <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
           <fo:region-body/>
@@ -31,33 +31,43 @@
       </fo:layout-master-set>
       <fo:page-sequence master-reference="normal" white-space-collapse="true">
         <fo:flow flow-name="xsl-region-body">
-          <fo:block-container left="10pt" top="10pt" width="3in" absolute-position="absolute" background-color="orange">
+          <fo:block-container left="10pt" top="10pt" width="3in" absolute-position="absolute" 
+              background-color="orange">
             <fo:block background-color="yellow">absolutely positioned width, no height specified</fo:block>
           </fo:block-container>
+          <fo:block-container left="10pt" top="100pt" width="3in" position="absolute" 
+              background-color="orange" 
+              border-bottom-width="2pt" border-bottom-style="solid" border-bottom-color="red">
+            <fo:block background-color="yellow">absolutely positioned width, no height specified, plus border</fo:block>
+          </fo:block-container>
         </fo:flow>
       </fo:page-sequence>
     </fo:root>
   </fo>
   <checks>
     <!-- *** first block-container *** -->
-    <true xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@is-viewport-area"/>
-    <eval expected="absolute" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@positioning"/>
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@ipd"/>
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@ipda"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@bpd"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@bpda"/>
-    <eval expected="10000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@left-position"/>
-    <eval expected="10000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@top-position"/>
+    <true xpath="//flow/block[1]/@is-viewport-area"/>
+    <eval expected="absolute" xpath="//flow/block[1]/@positioning"/>
+    <eval expected="216000" xpath="//flow/block[1]/@ipd"/>
+    <eval expected="216000" xpath="//flow/block[1]/@ipda"/>
+    <eval expected="28800" xpath="//flow/block[1]/@bpd"/>
+    <eval expected="28800" xpath="//flow/block[1]/@bpda"/>
+    <eval expected="10000" xpath="//flow/block[1]/@left-position"/>
+    <eval expected="10000" xpath="//flow/block[1]/@top-position"/>
     <!--   -> reference-area -->
-    <true xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@is-reference-area"/>
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipd"/>
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipda"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@bpd"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@bpda"/>
+    <true xpath="//flow/block[1]/block[1]/@is-reference-area"/>
+    <eval expected="216000" xpath="//flow/block[1]/block[1]/@ipd"/>
+    <eval expected="216000" xpath="//flow/block[1]/block[1]/@ipda"/>
+    <eval expected="28800" xpath="//flow/block[1]/block[1]/@bpd"/>
+    <eval expected="28800" xpath="//flow/block[1]/block[1]/@bpda"/>
     <!--   -> nested block -->
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/@ipd"/>
-    <eval expected="216000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/@ipda"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/@bpd"/>
-    <eval expected="28800" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/@bpda"/>
+    <eval expected="216000" xpath="//flow/block[1]/block[1]/block[1]/@ipd"/>
+    <eval expected="216000" xpath="//flow/block[1]/block[1]/block[1]/@ipda"/>
+    <eval expected="28800" xpath="//flow/block[1]/block[1]/block[1]/@bpd"/>
+    <eval expected="28800" xpath="//flow/block[1]/block[1]/block[1]/@bpda"/>
+    
+    <!-- *** second block-container with a border (used to cause an IllegalStateException) *** -->
+    <eval expected="28800" xpath="//flow/block[2]/@bpd"/>
+    <eval expected="30800" xpath="//flow/block[2]/@bpda"/>
   </checks>
 </testcase>



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org