Browse Source

FOP-2532: FontCache throws IllegalArgumentException with non file

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1740529 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_2
Simon Steiner 8 years ago
parent
commit
c55eb89a85

+ 1
- 2
fop-core/src/main/java/org/apache/fop/fonts/FontCache.java View File

@@ -332,8 +332,7 @@ public final class FontCache implements Serializable {
} else {
// try and determine modified date
URI fontUri = resourceResolver.resolveFromBase(fontInfo.getEmbedURI());
File fontFile = new File(fontUri);
long lastModified = fontFile.lastModified();
long lastModified = getLastModified(fontUri);
cachedFontFile = new CachedFontFile(lastModified);
if (log.isTraceEnabled()) {
log.trace("Font added to cache: " + cacheKey);

+ 15
- 0
fop-core/src/test/java/org/apache/fop/fonts/FontManagerTestCase.java View File

@@ -17,8 +17,11 @@

package org.apache.fop.fonts;

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;
@@ -30,6 +33,7 @@ import static org.mockito.Mockito.verify;

import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.io.InternalResourceResolver;
import org.apache.fop.apps.io.ResourceResolverFactory;

public class FontManagerTestCase {

@@ -57,6 +61,17 @@ public class FontManagerTestCase {
inOrder.verify(fontCacheManager).setCacheFile(any(URI.class));
}

@Test
public void testSetCacheURL() throws URISyntaxException {
InternalResourceResolver rr = ResourceResolverFactory.createDefaultInternalResourceResolver(
new File(".").toURI());
String uri = "abc://localhost/f";
EmbedFontInfo efi = new EmbedFontInfo(new FontUris(new URI(uri), null), false, false, null, null);
FontCache fc = new FontCache();
fc.addFont(efi, rr);
Assert.assertTrue(fc.containsFont(uri));
}

@Test
public void testGetFontCache() {
sut.getFontCache();

Loading…
Cancel
Save