Author: spepping
Date: Wed Jan  9 12:46:29 2008
New Revision: 610559

URL: http://svn.apache.org/viewvc?rev=610559&view=rev
Log:
Merged revisions 598746-603942 via svnmerge from 
https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk

........
  r599536 | vhennebert | 2007-11-29 19:31:13 +0100 (Thu, 29 Nov 2007) | 4 lines
  
  Added fixes-bug attributes for:
  - wrong element generation in table when glues are produced
  - border-resolution on row-spanning cells
........
  r599746 | jeremias | 2007-11-30 10:04:54 +0100 (Fri, 30 Nov 2007) | 2 lines
  
  Bugzilla #37993:
  Bugfix: allow multiple bookmarks to point at the same destination.
........
  r600195 | adelmelle | 2007-12-01 22:11:53 +0100 (Sat, 01 Dec 2007) | 1 line
  
  Correction and simplification of the PropertyCache: subclass WeakReference 
and remove internal threading
........
  r600467 | jeremias | 2007-12-03 11:16:27 +0100 (Mon, 03 Dec 2007) | 2 lines
  
  Log RuntimeExceptions during rendering so that they are at least visible 
somewhere if someone doesn't set an ErrorListener on the XSLT processor (this 
could lead to exceptions being swallowed). This is a temporary measure until we 
have time to improve the exception handling in FOP.
  The original problem that led to this change was: "The number of this 
PDFNumber must not be empty" while producing a PDF/A with customized filter 
entries in the PDF configuration. The exception was a follow-up exception after 
a PDFConformanceException that was swallowed by a default ErrorListener.
........
  r600521 | jeremias | 2007-12-03 14:21:06 +0100 (Mon, 03 Dec 2007) | 1 line
  
  Added a possibility to rerun the whole run a defined number of times to test 
for possible issues outside a single rendering run.
........
  r600529 | jeremias | 2007-12-03 14:32:04 +0100 (Mon, 03 Dec 2007) | 1 line
  
  Oops.
........
  r601413 | vhennebert | 2007-12-05 17:56:47 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Typo in property: svn:kewords -> svn:keywords
........
  r601415 | acumiskey | 2007-12-05 18:11:44 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Corrected javadocs
........
  r601416 | acumiskey | 2007-12-05 18:12:54 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Corrected javadoc
........
  r601417 | acumiskey | 2007-12-05 18:13:31 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Corrected javadoc
........
  r601419 | acumiskey | 2007-12-05 18:15:46 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Improved use of logging
........
  r601423 | acumiskey | 2007-12-05 18:19:43 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Corrected javadoc, fixed checkstyle issues, and now also correctly caters for 
negative number conversions
........
  r601424 | acumiskey | 2007-12-05 18:21:15 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Fixed checkstyle issues
........
  r601426 | acumiskey | 2007-12-05 18:24:15 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601427 | acumiskey | 2007-12-05 18:25:07 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601428 | acumiskey | 2007-12-05 18:25:58 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601429 | acumiskey | 2007-12-05 18:27:06 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601430 | acumiskey | 2007-12-05 18:28:03 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601431 | acumiskey | 2007-12-05 18:28:48 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601432 | acumiskey | 2007-12-05 18:29:31 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601433 | acumiskey | 2007-12-05 18:30:04 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601434 | acumiskey | 2007-12-05 18:31:20 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601435 | acumiskey | 2007-12-05 18:32:29 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601436 | acumiskey | 2007-12-05 18:34:44 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601437 | acumiskey | 2007-12-05 18:35:31 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601438 | acumiskey | 2007-12-05 18:36:12 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes and cleanup
........
  r601439 | acumiskey | 2007-12-05 18:37:40 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601440 | acumiskey | 2007-12-05 18:39:54 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601442 | acumiskey | 2007-12-05 18:42:13 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601443 | acumiskey | 2007-12-05 18:42:48 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601444 | acumiskey | 2007-12-05 18:43:46 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601445 | acumiskey | 2007-12-05 18:44:36 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601446 | acumiskey | 2007-12-05 18:45:20 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601447 | acumiskey | 2007-12-05 18:47:44 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601448 | acumiskey | 2007-12-05 18:48:56 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601449 | acumiskey | 2007-12-05 18:49:46 +0100 (Wed, 05 Dec 2007) | 2 lines
  
  Checkstyle fixes
........
  r601712 | acumiskey | 2007-12-06 12:57:14 +0100 (Thu, 06 Dec 2007) | 2 lines
  
  Temporary fix to the build
........
  r602045 | jeremias | 2007-12-07 10:20:28 +0100 (Fri, 07 Dec 2007) | 1 line
  
  Avoid a NPE in toString().
........
  r602125 | maxberger | 2007-12-07 16:36:53 +0100 (Fri, 07 Dec 2007) | 6 lines
  
  Updated xmlgraphics from SVN
  Added autodetection of fonts in jar files (x-font and x-font-truetype)
  Added files needed for testcase
  Please note: Actual testcase is still missing!
........
  r602898 | maxberger | 2007-12-10 14:35:33 +0100 (Mon, 10 Dec 2007) | 2 lines
  
  Added documentation for font-in-jar-files
........
  r603590 | acumiskey | 2007-12-12 13:24:10 +0100 (Wed, 12 Dec 2007) | 4 lines
  
  * Added an SVG handler and Graphics2D implementation for AFP which injects 
AFP GOCA structured fields into the AFPDataStream.
  * Fixed many checkstyle problems.
  * Updated xmlgraphics-commons-1.3svn.jar to include changes to TextHandler
........
  r603592 | acumiskey | 2007-12-12 13:26:39 +0100 (Wed, 12 Dec 2007) | 2 lines
  
  Updated status with SVG support for AFP.
........
  r603890 | vhennebert | 2007-12-13 12:35:17 +0100 (Thu, 13 Dec 2007) | 2 lines
  
  Fixed @throws statements in javadoc
........
  r603926 | adelmelle | 2007-12-13 15:43:08 +0100 (Thu, 13 Dec 2007) | 4 lines
  
  Minor tweaks:
  * only add text to a fo:wrapper if it is not a direct flow-descendant
  * error if an fo:wrapper that is a direct flow-descendant contains 
inline-level children
........

Added:
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPGraphics2D.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPGraphics2D.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPGraphicsConfiguration.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPGraphicsConfiguration.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPGraphicsDevice.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPGraphicsDevice.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPInfo.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPInfo.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPPageFonts.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPPageFonts.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPState.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPState.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPTextElementBridge.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPTextElementBridge.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPTextHandler.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPTextHandler.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPTextPainter.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPTextPainter.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractDataObject.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/AbstractDataObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/GraphicsDataDescriptor.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/GraphicsDataDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/GraphicsObject.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/GraphicsObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PreparedAFPObject.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/PreparedAFPObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/
      - copied from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/AbstractGraphicsContainer.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/AbstractGraphicsContainer.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/AbstractGraphicsCoord.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/AbstractGraphicsCoord.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/AbstractPreparedAFPObject.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/AbstractPreparedAFPObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsArea.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsArea.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsBox.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsBox.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsChainedSegment.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsChainedSegment.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsData.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsData.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsFillet.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsFillet.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsFullArc.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsFullArc.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageBegin.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageBegin.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageData.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageData.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageEnd.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsImageEnd.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsLine.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsLine.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetArcParameters.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetArcParameters.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetCharacterSet.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetCharacterSet.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetCurrentPosition.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetCurrentPosition.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetLineType.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetLineType.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetLineWidth.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetLineWidth.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetPatternSymbol.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetPatternSymbol.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetProcessColor.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsSetProcessColor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/goca/GraphicsString.java
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/modca/goca/GraphicsString.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/layoutengine/standard-testcases/bookmarks_2.xml
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/resources/META-INF/
      - copied from r603926, xmlgraphics/fop/trunk/test/resources/META-INF/
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/resources/META-INF/MANIFEST.MF
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/test/resources/META-INF/MANIFEST.MF
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/resources/fonts/DejaVuLGCSerif.LICENSE
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/test/resources/fonts/DejaVuLGCSerif.LICENSE
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/resources/fonts/DejaVuLGCSerif.ttf
      - copied unchanged from r603926, 
xmlgraphics/fop/trunk/test/resources/fonts/DejaVuLGCSerif.ttf
Modified:
    xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/   (props 
changed)
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/lib/xmlgraphics-commons-1.3svn.jar
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/documentation/content/xdocs/trunk/fonts.xml
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/BookmarkData.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/RenderPagesModel.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/flow/Wrapper.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/ColorProperty.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/PropertyCache.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fonts/MutableFont.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/pdf/PDFObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/PrintRendererConfigurator.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPFontAttributes.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPRenderer.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPRendererConfigurator.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPRendererContextConstants.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPSVGHandler.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/exceptions/NestedRuntimeException.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/extensions/AFPAttribute.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/extensions/AFPElementMapping.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/extensions/AFPExtensionHandler.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/AFPFontReader.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/CharacterSet.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/CharacterSetOrientation.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/FopCharacterSet.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/OutlineFont.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/fonts/RasterFont.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AFPConstants.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AFPDataStream.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractAFPObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractNamedAFPObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/AbstractPageObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ActiveEnvironmentGroup.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageCellPosition.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageContent.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageDataDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageInputDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageOutputControl.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageRasterData.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageRasterPattern.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageSegment.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ImageSizeParameter.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/MapCodedFont.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/MapPageOverlay.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/MaximumSizeExceededException.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ObjectAreaDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ObjectAreaPosition.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/ObjectEnvironmentGroup.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PageDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PageObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PresentationTextData.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PresentationTextDescriptor.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/PresentationTextObject.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/TagLogicalElement.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/modca/TagLogicalElementBean.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/tools/BinaryUtils.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/tools/DTDEntityResolver.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/tools/StructuredFieldReader.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/pdf/PDFSVGHandler.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/ps/NativeTextHandler.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/ps/PSTextPainter.java
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/svg/PDFGraphicsDevice.java
    xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/status.xml
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/fotree/unittests/table/RowGroupBuilder_no-row_simple.fo
   (props changed)
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/fotree/unittests/table/RowGroupBuilder_no-row_spans.fo
   (props changed)
    
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/test/java/org/apache/fop/memory/MemoryEater.java

Propchange: xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jan  9 12:46:29 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk:1-598745
+/xmlgraphics/fop/trunk:1-603942

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/lib/xmlgraphics-commons-1.3svn.jar
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/lib/xmlgraphics-commons-1.3svn.jar?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
Binary files - no diff available.

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/documentation/content/xdocs/trunk/fonts.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/documentation/content/xdocs/trunk/fonts.xml?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/documentation/content/xdocs/trunk/fonts.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/documentation/content/xdocs/trunk/fonts.xml
 Wed Jan  9 12:46:29 2008
@@ -25,6 +25,7 @@
       <person name="Jeremias Märki" email=""/>
       <person name="Tore Engvig" email=""/>
       <person name="Adrian Cumiskey" email=""/>
+      <person name="Max Berger" email=""/>
     </authors>
   </header>
   <body>
@@ -301,6 +302,16 @@
           </li>
         </ul>
         <!--note>Cocoon users will need to setup the config, see FOPSerializer 
for more information.</note-->
+      </section>
+      <section id="autodetect">
+        <title>Auto-Detect and auto-embedd feature</title>
+      <p>When the "auto-detect" flag is set in the configuration, FOP will 
automatically search for fonts in the default paths for your operating 
system.</p>
+      <p>FOP will also auto-detect fonts which are available in the classpath, 
if they are described as "application/x-font" in the MANIFEST.MF file. For 
example, if your .jar file contains font/myfont.ttf:</p>
+      <source>Manifest-Version: 1.0
+
+Name: font/myfont.ttf
+Content-Type: application/x-font</source>
+      <p>This feature allows you to create JAR files containing fonts. The JAR 
files can be added to fop by providem them in the classpath, e.g. copying them 
into the lib/ directory.</p>
       </section>
       <section id="embedding">
         <title>Embedding</title>

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/BookmarkData.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/BookmarkData.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/BookmarkData.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/BookmarkData.java
 Wed Jan  9 12:46:29 2008
@@ -19,11 +19,13 @@
  
 package org.apache.fop.area;
 
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
-import java.util.HashMap;
+import java.util.Map;
 
-import org.apache.fop.fo.pagination.bookmarks.BookmarkTree;
 import org.apache.fop.fo.pagination.bookmarks.Bookmark;
+import org.apache.fop.fo.pagination.bookmarks.BookmarkTree;
 
 /**
  * An instance of this class is either a PDF bookmark-tree and
@@ -31,6 +33,7 @@
  * child bookmark-items under it.
  */
 public class BookmarkData extends AbstractOffDocumentItem implements 
Resolvable {
+    
     private List subData = new java.util.ArrayList();
 
     // bookmark-title for this fo:bookmark
@@ -46,7 +49,7 @@
     private PageViewport pageRef = null;
 
     // unresolved idrefs by this bookmark and child bookmarks below it
-    private HashMap unresolvedIDRefs = new HashMap();
+    private Map unresolvedIDRefs = new java.util.HashMap();
 
     /**
      * Create a new bookmark data object.
@@ -79,9 +82,17 @@
         bookmarkTitle = bookmark.getBookmarkTitle();
         bShow = bookmark.showChildItems();
         this.idRef = bookmark.getInternalDestination();
-        unresolvedIDRefs.put(idRef, this);
     }
 
+    private void putUnresolved(String id, BookmarkData bd) {
+        List refs = (List)unresolvedIDRefs.get(id);
+        if (refs == null) {
+            refs = new java.util.ArrayList();
+            unresolvedIDRefs.put(id, refs);
+        }
+        refs.add(bd);
+    }
+    
     /**
      * Create a new bookmark data root object.
      * This constructor is called by the AreaTreeParser when the
@@ -128,10 +139,10 @@
     public void addSubData(BookmarkData sub) {
         subData.add(sub);
         if (sub.pageRef == null || sub.pageRef.equals("")) {
-            unresolvedIDRefs.put(sub.getIDRef(), sub);
+            putUnresolved(sub.getIDRef(), sub);
             String[] ids = sub.getIDRefs();
             for (int count = 0; count < ids.length; count++) {
-                unresolvedIDRefs.put(ids[count], sub);
+                putUnresolved(ids[count], sub);
             }
         }
     }
@@ -212,9 +223,13 @@
      */
     public void resolveIDRef(String id, List pages) {
         if (!id.equals(idRef)) {
-            BookmarkData bd = (BookmarkData) unresolvedIDRefs.get(id);
-            if (bd != null) {
-                bd.resolveIDRef(id, pages);
+            Collection refs = (Collection)unresolvedIDRefs.get(id);
+            if (refs != null) {
+                Iterator iter = refs.iterator();
+                while (iter.hasNext()) {
+                    BookmarkData bd = (BookmarkData)iter.next();
+                    bd.resolveIDRef(id, pages);
+                }
                 unresolvedIDRefs.remove(id);
             }
         } else {

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/RenderPagesModel.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/RenderPagesModel.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/RenderPagesModel.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/area/RenderPagesModel.java
 Wed Jan  9 12:46:29 2008
@@ -22,13 +22,11 @@
 // Java
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.List;
 import java.util.Iterator;
+import java.util.List;
 
-// XML
 import org.xml.sax.SAXException;
 
-// FOP
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.fonts.FontInfo;
@@ -119,6 +117,8 @@
             try {
                 renderer.renderPage(page);
             } catch (RuntimeException re) {
+                String err = "Error while rendering page " + 
page.getPageNumberString(); 
+                log.error(err, re);
                 throw re;
             } catch (Exception e) {
                 //TODO use error handler to handle this FOP or IO Exception or 
propagate exception

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/flow/Wrapper.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/flow/Wrapper.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/flow/Wrapper.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/flow/Wrapper.java
 Wed Jan  9 12:46:29 2008
@@ -19,9 +19,12 @@
 
 package org.apache.fop.fo.flow;
 
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObjMixed;
+import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.pagination.Flow;
 import org.xml.sax.Locator;
 
 /**
@@ -35,12 +38,24 @@
     
     // used for FO validation
     private boolean blockOrInlineItemFound = false;
+    private boolean isFlowChild = false;
 
     /**
      * @param parent FONode that is the parent of this object
      */
     public Wrapper(FONode parent) {
         super(parent);
+        /* Check if the fo:wrapper is a child of an fo:flow or 
fo:static-content
+         * (or a descendant in nested fo:wrapper sequence, the first of which
+         *  is a child of an fo:flow or fo:static-content */
+        FONode ancestor = this.parent;
+        while (!(ancestor instanceof Flow)
+                && ancestor instanceof Wrapper) {
+            ancestor = ancestor.getParent();
+        }
+        if (ancestor instanceof Flow) {
+            this.isFlowChild = true;
+        }
     }
 
     /**
@@ -49,6 +64,7 @@
      * Additionally (unimplemented): "An fo:wrapper that is a child of an 
      * fo:multi-properties is only permitted to have children that would 
      * be permitted in place of the fo:multi-properties."
+     * 
      */
     protected void validateChildNode(Locator loc, String nsURI, String 
localName) 
         throws ValidationException {
@@ -58,9 +74,30 @@
                     "(#PCDATA|%inline;|%block;)");
             }
         } else if (isBlockOrInlineItem(nsURI, localName)) {
+            if (isFlowChild
+                    && isInlineItem(nsURI, localName)
+                    && !isNeutralItem(nsURI, localName)) {
+                invalidChildError(loc, nsURI, localName,
+                        "fo:" + localName + " not allowed as child of an 
fo:wrapper "
+                        + "that is a child of an fo:flow or 
fo:static-content");
+            }
             blockOrInlineItemFound = true;
         } else {
             invalidChildError(loc, nsURI, localName);
+        }
+    }
+
+    /** [EMAIL PROTECTED] */
+    protected void addCharacters(
+                char[] data, 
+                int start, 
+                int end, 
+                PropertyList pList, 
+                Locator locator) throws FOPException {
+        /* Only add text if the fo:wrapper is not a child of an fo:flow 
+         * or fo:static-content */
+        if (!this.isFlowChild) {
+            super.addCharacters(data, start, end, pList, locator);
         }
     }
 

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/ColorProperty.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/ColorProperty.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/ColorProperty.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/ColorProperty.java
 Wed Jan  9 12:46:29 2008
@@ -103,12 +103,12 @@
     }
 
     /**
-     * 
-     * @param value
-     * @return
+     * Returns an instance of a color property given a color
+     * @param color the color value
+     * @return the color property
      */
-    public static ColorProperty getInstance(Color value) {
-        return (ColorProperty) cache.fetch(new ColorProperty(value));
+    public static ColorProperty getInstance(Color color) {
+        return (ColorProperty) cache.fetch(new ColorProperty(color));
     }
     
     /**

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/PropertyCache.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/PropertyCache.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/PropertyCache.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fo/properties/PropertyCache.java
 Wed Jan  9 12:46:29 2008
@@ -19,6 +19,7 @@
 
 package org.apache.fop.fo.properties;
 
+import java.lang.ref.ReferenceQueue;
 import java.lang.ref.WeakReference;
 
 /**
@@ -41,10 +42,15 @@
     /** the table of hash-buckets */
     private CacheEntry[] table = new CacheEntry[8];
     
+    boolean[] votesForRehash = new boolean[SEGMENT_MASK + 1];
+    
     /* same hash function as used by java.util.HashMap */
     private static int hash(Object x) {
-        int h = x.hashCode();
-
+        return hash(x.hashCode());
+    }
+    
+    private static int hash(int hashCode) {
+        int h = hashCode;
         h += ~(h << 9);
         h ^= (h >>> 14);
         h += (h << 4);
@@ -58,90 +64,79 @@
     }
     
     /* Class modeling a cached entry */
-    private final class CacheEntry {
-        final CacheEntry next;
-        volatile WeakReference ref;
+    private final class CacheEntry extends WeakReference {
+        volatile CacheEntry nextEntry;
         final int hash;
         
         /* main constructor */
-        CacheEntry(Object p, CacheEntry next) {
-            this.next = next;
-            this.ref = new WeakReference(p);
+        public CacheEntry(Object p, CacheEntry nextEntry, ReferenceQueue 
refQueue) {
+            super(p, refQueue);
+            this.nextEntry = nextEntry;
             this.hash = p.hashCode();
         }
         
-        /* clone constructor */
-        CacheEntry(CacheEntry old, CacheEntry next) {
-            this.next = next;
-            this.ref = old.ref;
-            this.hash = old.hash;
-        }
-
-        public boolean isCleared() {
-            return (ref == null || ref.get() == null);
-        }
-        
     }
     
     /* Wrapper objects to synchronize on */
     private final class CacheSegment {
         private int count = 0;
-    }
+        private ReferenceQueue staleEntries = new ReferenceQueue();
+    }    
     
-    /*
-     * Class modeling a cleanup thread.
-     * 
-     * Once run() is called, the segment is locked and the hash-bucket
-     * will be traversed, removing any obsolete entries.
-     * If the cleanup has no effect, rehash() is called.
-     */
-    private final class CacheCleaner implements Runnable {
-        
-        private int hash;
-        
-        CacheCleaner(int hash) {
-            this.hash = hash;
+    private final void cleanSegment(int segmentIndex) {
+        CacheEntry entry;
+        CacheSegment segment = segments[segmentIndex];
+        int bucketIndex;
+        int oldCount = segment.count;
+
+        while ((entry = (CacheEntry) segment.staleEntries.poll()) != null) {
+            bucketIndex = hash(entry.hash) & (table.length - 1);
+            /* remove obsolete entry */
+            /* 1. move to the corresponding entry */
+            CacheEntry prev = null;
+            CacheEntry e = table[bucketIndex];
+            while (e != null
+                    && e.nextEntry != null
+                    && e.hash != entry.hash) {
+                prev = e;
+                e = e.nextEntry;
+            }
+            if (e != null) {
+                /* 2. remove reference from the chain */
+                if (prev == null) {
+                    table[bucketIndex] = e.nextEntry;
+                } else {
+                    prev.nextEntry = e.nextEntry;
+                }
+                segment.count--;
+            }
         }
-        
-        public void run() {
-            //System.out.println("Cleaning segment " + this.segment);
-            CacheSegment segment = segments[this.hash & SEGMENT_MASK];
-            int oldCount;
-            int newCount;
-            synchronized (segment) {
-                oldCount = segment.count;
-                /* check first to see if another cleaner thread already
-                 * pushed the number of entries back below the threshold
-                 * if so, return immediately
-                 */
-                if (segment.count < (2 * table.length)) {
-                    return;
+        synchronized (votesForRehash) {
+            if (oldCount > segment.count) {
+                if (votesForRehash[segmentIndex]) {
+                    votesForRehash[segmentIndex] = false;
                 }
-                
-                int index = this.hash & (table.length - 1);
-                CacheEntry first = table[index];
-                for (CacheEntry e = first; e != null; e = e.next) {
-                    if (e.isCleared()) {
-                        /* remove obsolete entry
-                        /* 1. clear value, cause interference for non-blocking 
get() */
-                        e.ref = null;
-                        
-                        /* 2. clone the segment, without the obsolete entry */
-                        CacheEntry head = e.next;
-                        for (CacheEntry c = first; c != e; c = c.next) {
-                            if (!c.isCleared()) {
-                                head = new CacheEntry(c, head);
-                            }
+                return;
+            } else {
+                /* cleanup had no effect */
+                if (!votesForRehash[segmentIndex]) {
+                    /* first time for this segment */
+                    votesForRehash[segmentIndex] = true;
+                    int voteCount = 0;
+                    for (int i = SEGMENT_MASK + 1; --i >= 0; ) {
+                        if (votesForRehash[i]) {
+                            voteCount++;
                         }
-                        table[index] = head;
-                        segment.count--;
+                    }
+                    if (voteCount > SEGMENT_MASK / 4) {
+                        rehash(SEGMENT_MASK);
+                        /* reset votes */
+                        for (int i = SEGMENT_MASK + 1; --i >= 0;) {
+                            votesForRehash[i] = false;
+                        }
+    
                     }
                 }
-                newCount = segment.count;
-            }
-            if (oldCount == newCount) {
-                /* cleanup had no effect, try rehashing */
-                rehash(SEGMENT_MASK);
             }
         }
     }
@@ -150,7 +145,7 @@
      * Puts a new instance in the cache.
      * If the total number of entries for the corresponding
      * segment exceeds twice the amount of hash-buckets, a
-     * cleanup thread will be launched to remove obsolete
+     * cleanup will be performed to try and remove obsolete
      * entries.
      */
     private final void put(Object o) {
@@ -163,26 +158,22 @@
             CacheEntry entry = table[index];
             
             if (entry == null) {
-                entry = new CacheEntry(o, null);
+                entry = new CacheEntry(o, null, segment.staleEntries);
                 table[index] = entry;
                 segment.count++;
             } else {
-                WeakReference ref = entry.ref;
-                if (ref != null && eq(ref.get(), o)) {
+                Object p = entry.get();
+                if (eq(p, o)) {
                     return;
                 } else {
-                    CacheEntry newEntry = new CacheEntry(o, entry);
+                    CacheEntry newEntry = new CacheEntry(o, entry, 
segment.staleEntries);
                     table[index] = newEntry;
                     segment.count++;
                 }
             }
             
             if (segment.count > (2 * table.length)) {
-                /* launch cleanup in a separate thread, 
-                 * so it acquires its own lock, and put()
-                 * can return immediately */
-                Thread cleaner = new Thread(new CacheCleaner(hash), "FOP 
PropertyCache Cleaner");
-                cleaner.start();
+                cleanSegment(hash & SEGMENT_MASK);
             }
         }
     }
@@ -195,14 +186,12 @@
         int index = hash & (table.length - 1);
         
         CacheEntry entry = table[index];
-        WeakReference r;
         Object q;
         
         /* try non-synched first */
-        for (CacheEntry e = entry; e != null; e = e.next) {
+        for (CacheEntry e = entry; e != null; e = e.nextEntry) {
             if (e.hash == o.hashCode()
-                    && (r = e.ref) != null
-                    && (q = r.get()) != null
+                    && (q = e.get()) != null
                     &&  eq(q, o)) {
                 return q;
             }
@@ -214,10 +203,9 @@
         CacheSegment segment = segments[hash & SEGMENT_MASK];
         synchronized (segment) {
             entry = table[index];
-            for (CacheEntry e = entry; e != null; e = e.next) {
+            for (CacheEntry e = entry; e != null; e = e.nextEntry) {
                 if (e.hash == o.hashCode()
-                        && (r = e.ref) != null
-                        && (q = r.get()) != null
+                        && (q = e.get()) != null
                         &&  eq(q, o)) {
                     return q;
                 }
@@ -228,16 +216,8 @@
     
     /*
      * Recursively acquires locks on all 32 segments,
-     * then performs a check on the segments first to see `
-     * how many precisely exceed the threshold ( 2 x table.length ). 
-     * If this number exceeds half the amount of buckets, 
      * extends the cache and redistributes the entries.
      * 
-     * Example:
-     * For a cache with default size of 8 buckets, each bucket is
-     * a segment, and as such, rehash() will only have effect
-     * if more than 4 buckets exceed the size of 16 entries.
-     * 
      */
     private final void rehash(int index) {
         
@@ -250,40 +230,24 @@
                 /* double the amount of buckets */
                 int newLength = table.length << 1;
                 if (newLength > 0) { //no overflow?
-                    /* Check segmentcounts first */
-                    int countSegments = 0;
-                    int threshold = table.length * 2;
+                    /* reset segmentcounts */
                     for (int i = segments.length; --i >= 0;) {
-                        if (segments[i].count > threshold) {
-                            countSegments++;
-                        }
-                    }
-                    
-                    if (countSegments <= (table.length / 2)) {
-                        return;
-                    } else {
-                        /* reset segmentcounts */
-                        for (int i = segments.length; --i >= 0;) {
-                            segments[i].count = 0;
-                        }
+                        segments[i].count = 0;
                     }
                     
                     CacheEntry[] newTable = new CacheEntry[newLength];
                     
                     int hash, idx;
-                    WeakReference ref;
                     Object o;
                     newLength--;
                     for (int i = table.length; --i >= 0;) {
-                        for (CacheEntry c = table[i]; c != null; c = c.next) {
-                            ref = c.ref;
-                            if (ref != null) {
-                                if ((o = ref.get()) != null) {
-                                    hash = hash(o);
-                                    idx = hash & newLength;
-                                    newTable[idx] = new CacheEntry(c, 
newTable[idx]);
-                                    segments[hash & SEGMENT_MASK].count++;
-                                }
+                        for (CacheEntry c = table[i]; c != null; c = 
c.nextEntry) {
+                            if ((o = c.get()) != null) {
+                                hash = c.hash;
+                                idx = hash & newLength;
+                                newTable[idx] = new CacheEntry(o, 
newTable[idx], 
+                                        segments[hash & 
SEGMENT_MASK].staleEntries);
+                                segments[hash & SEGMENT_MASK].count++;
                             }
                         }
                     }

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fonts/MutableFont.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fonts/MutableFont.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fonts/MutableFont.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/fonts/MutableFont.java
 Wed Jan  9 12:46:29 2008
@@ -43,7 +43,7 @@
 
     /**
      * Sets the font's family names (Example: "Helvetica").
-     * @param name the font's family names (a Set of Strings)
+     * @param names the font's family names (a Set of Strings)
      */
     void setFamilyNames(Set names);
     

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
 Wed Jan  9 12:46:29 2008
@@ -19,21 +19,22 @@
 
 package org.apache.fop.layoutmgr;
 
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.FONode;
+
 import org.apache.fop.area.Area;
 import org.apache.fop.area.PageViewport;
 import org.apache.fop.fo.Constants;
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.FObj;
 import org.apache.fop.fo.flow.RetrieveMarker;
 
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.ListIterator;
-import java.util.Map;
-
 /**
  * The base class for most LayoutManagers.
  */
@@ -427,7 +428,7 @@
 
     /** [EMAIL PROTECTED] */
     public String toString() {
-        return (super.toString() + "[fobj=" + fobj.toString() + "]");
+        return (super.toString() + (fobj != null ? "[fobj=" + fobj.toString() 
+ "]" : ""));
     }
     
 }

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/pdf/PDFObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/pdf/PDFObject.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/pdf/PDFObject.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/pdf/PDFObject.java
 Wed Jan  9 12:46:29 2008
@@ -83,7 +83,9 @@
      */
     public void setObjectNumber(int objnum) {
         this.objnum = objnum;
-        log.trace("Assigning " + this + " object number " + objnum);
+        if (log.isTraceEnabled()) {
+            log.trace("Assigning " + this + " object number " + objnum);
+        }
     }
 
     /**

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/PrintRendererConfigurator.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/PrintRendererConfigurator.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/PrintRendererConfigurator.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/PrintRendererConfigurator.java
 Wed Jan  9 12:46:29 2008
@@ -50,6 +50,7 @@
 import org.apache.fop.fonts.autodetect.FontFileFinder;
 import org.apache.fop.fonts.autodetect.FontInfoFinder;
 import org.apache.fop.util.LogUtil;
+import org.apache.xmlgraphics.util.ClasspathResource;
 
 /**
  * Base Print renderer configurator (mostly handles font configuration)
@@ -159,6 +160,16 @@
                 } catch (IOException e) {
                     LogUtil.handleException(log, e, strict);
                 }
+
+                // load fonts from classpath
+                addFontInfoListFromFileList(ClasspathResource.getInstance()
+                        .listResourcesOfMimeType("application/x-font"),
+                        fontInfoList, fontResolver, fontCache);
+                addFontInfoListFromFileList(
+                        ClasspathResource.getInstance()
+                                .listResourcesOfMimeType(
+                                        "application/x-font-truetype"),
+                        fontInfoList, fontResolver, fontCache);
             }
 
             // directory (multiple font) configuration

Modified: 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPFontAttributes.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPFontAttributes.java?rev=610559&r1=610558&r2=610559&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPFontAttributes.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking/src/java/org/apache/fop/render/afp/AFPFontAttributes.java
 Wed Jan  9 12:46:29 2008
@@ -20,10 +20,9 @@
 package org.apache.fop.render.afp;
 
 import org.apache.fop.render.afp.fonts.AFPFont;
-import org.apache.fop.render.afp.tools.BinaryUtils;
 
 /**
- * This class encapsulates the font atributes that need to be included
+ * This class encapsulates the font attributes that need to be included
  * in the AFP data stream. This class does not assist in converting the
  * font attributes to AFP code pages and character set values.
  *
@@ -31,24 +30,24 @@
 public class AFPFontAttributes {
 
     /**
-     * The font reference byte
+     * The font reference
      */
-    private byte _fontReference;
+    private int fontReference;
 
     /**
      * The font key
      */
-    private String _fontKey;
+    private String fontKey;
 
     /**
      * The font
      */
-    private AFPFont _font;
+    private AFPFont font;
 
     /**
      * The point size
      */
-    private int _pointSize;
+    private int pointSize;
 
     /**
      * Constructor for the AFPFontAttributes
@@ -56,45 +55,38 @@
      * @param font the font
      * @param pointSize the point size
      */
-    public AFPFontAttributes(
-
-        String fontKey,
-        AFPFont font,
-        int pointSize) {
-
-        _fontKey = fontKey;
-        _font = font;
-        _pointSize = pointSize;
-
+    public AFPFontAttributes(String fontKey, AFPFont font, int pointSize) {
+        this.fontKey = fontKey;
+        this.font = font;
+        this.pointSize = pointSize;
     }
+
     /**
      * @return the font
      */
     public AFPFont getFont() {
-        return _font;
+        return font;
     }
 
     /**
      * @return the FontKey attribute
      */
     public String getFontKey() {
-
-        return _fontKey + _pointSize;
-
+        return fontKey + pointSize;
     }
 
     /**
      * @return the point size attribute
      */
     public int getPointSize() {
-        return _pointSize;
+        return pointSize;
     }
 
     /**
      * @return the FontReference attribute
      */
-    public byte getFontReference() {
-        return _fontReference;
+    public int getFontReference() {
+        return fontReference;
     }
 
     /**
@@ -102,10 +94,7 @@
      * @param fontReference the FontReference to set
      */
     public void setFontReference(int fontReference) {
-
-        String id = String.valueOf(fontReference);
-        _fontReference = BinaryUtils.convert(id)[0];
-
+        this.fontReference = fontReference;
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to