You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/08/26 08:57:11 UTC
svn commit: r1839175 - in
/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf:
GlyphTable.java TrueTypeFont.java
Author: tilman
Date: Sun Aug 26 08:57:11 2018
New Revision: 1839175
URL: http://svn.apache.org/viewvc?rev=1839175&view=rev
Log:
PDFBOX-4219: synchronize on data because it is accessed by several threads when PDFBox is accessing a standard 14 font for the first time
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphTable.java
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java
Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphTable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphTable.java?rev=1839175&r1=1839174&r2=1839175&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphTable.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphTable.java Sun Aug 26 08:57:11 2018
@@ -83,7 +83,9 @@ public class GlyphTable extends TTFTable
*/
public GlyphData[] getGlyphs() throws IOException
{
- synchronized (font)
+ // PDFBOX-4219: synchronize on data because it is accessed by several threads
+ // when PDFBox is accessing a standard 14 font for the first time
+ synchronized (data)
{
// the glyph offsets
long[] offsets = loca.getOffsets();
@@ -157,7 +159,9 @@ public class GlyphTable extends TTFTable
return glyphs[gid];
}
- synchronized (font)
+ // PDFBOX-4219: synchronize on data because it is accessed by several threads
+ // when PDFBox is accessing a standard 14 font for the first time
+ synchronized (data)
{
// read a single glyph
long[] offsets = loca.getOffsets();
Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java?rev=1839175&r1=1839174&r2=1839175&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java Sun Aug 26 08:57:11 2018
@@ -343,12 +343,17 @@ public class TrueTypeFont implements Fon
*/
void readTable(TTFTable table) throws IOException
{
- // save current position
- long currentPosition = data.getCurrentPosition();
- data.seek(table.getOffset());
- table.read(this, data);
- // restore current position
- data.seek(currentPosition);
+ // PDFBOX-4219: synchronize on data because it is accessed by several threads
+ // when PDFBox is accessing a standard 14 font for the first time
+ synchronized (data)
+ {
+ // save current position
+ long currentPosition = data.getCurrentPosition();
+ data.seek(table.getOffset());
+ table.read(this, data);
+ // restore current position
+ data.seek(currentPosition);
+ }
}
/**