Return-Path: Delivered-To: apmail-jakarta-tomcat-user-archive@apache.org Received: (qmail 95297 invoked from network); 3 Apr 2002 04:08:00 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 3 Apr 2002 04:08:00 -0000 Received: (qmail 12280 invoked by uid 97); 3 Apr 2002 04:07:50 -0000 Delivered-To: qmlist-jakarta-archive-tomcat-user@jakarta.apache.org Received: (qmail 12264 invoked by uid 97); 3 Apr 2002 04:07:49 -0000 Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Tomcat Users List" Reply-To: "Tomcat Users List" Delivered-To: mailing list tomcat-user@jakarta.apache.org Received: (qmail 12253 invoked from network); 3 Apr 2002 04:07:49 -0000 Message-ID: <3CAA7FF1.8060409@dotech.com> Date: Tue, 02 Apr 2002 23:07:13 -0500 From: David Kavanagh User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1 X-Accept-Language: en-us MIME-Version: 1.0 To: tomcat-user@jakarta.apache.org Subject: file access (security?) Content-Type: multipart/mixed; boundary="------------090905090308000702070108" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --------------090905090308000702070108 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit I'm having a problem with TC4.0.3 (Win2K, JDK1.3.1) I have some code that reads a property file and tries to load fonts listed within. ClassLoader.getResource() is used to locate the prop file and font files I'm attaching the servlet test code. This code works fine under TC3.2.2 and TC3.3a BTW, the files being loaded are in a jar in my WEB-INF/lib directory. I've seen two problems: 1. when the font path contains a space, the resource URL is OK, but calling url.openStream() returns null. (works fine in TC3.x) 2. even if the input stream is good (as shown in the log below), there seems to be a problem creating a temp file. Could problem 2 be caused by some security features that have been put in place sincee TC3? Here is my catalina.out (the relavent section) file = fonts/Pgl_____.ttf resource = jar:file:D:/work/pix.light/light/WEB-INF/lib/fonts.jar!/fonts/Pgl_____.ttf input stream = java.util.zip.ZipFile$1@5dd910 java.io.IOException: The system cannot find the path specified at java.io.Win32FileSystem.createFileExclusively(Native Method) at java.io.File.checkAndCreate(File.java:1162) at java.io.File.createTempFile(File.java:1247) at java.awt.Font.createFont(Font.java:398) at com.xerox.pix.servlet.FontServlet.doGet(FontServlet.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) ... Thanks, David --------------090905090308000702070108 Content-Type: text/plain; name="FontServlet.java" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="FontServlet.java" package com.xerox.pix.servlet; import java.awt.Font; import java.io.InputStream; import java.io.PrintWriter; import java.net.URL; import java.util.Enumeration; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * This class ... * * @version $Revision$ $Date$ * @author D. Kavanagh * @author developer@dotech.com */ public class FontServlet extends LightServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ){ PrintWriter writer = null; try { response.setHeader("Pragma", "no-cache"); response.setHeader("Expires", "0"); response.setHeader("Cache-control", "no-cache, must-revalidate"); response.setContentType( "text/html" ); Properties props = new Properties(); props.load(getClass().getClassLoader().getResource("fonts/fonts.properties").openStream()); Enumeration enum = props.keys(); while (enum.hasMoreElements()) { String file = (String)props.get(enum.nextElement()); System.err.println("file = "+file); URL url = getClass().getClassLoader().getResource(file); System.err.println("resource = "+url); InputStream in = url.openStream(); System.err.println("input stream = "+in); Font f = Font.createFont(Font.TRUETYPE_FONT, in); } writer = response.getWriter(); writer.println("

loaded fonts!"); } catch (Exception e) { try { writer = response.getWriter(); writer.println("

ERROR: "+e.getMessage()+""); } catch (Exception ex) {} e.printStackTrace(); } finally { if (writer != null) writer.close(); } } } --------------090905090308000702070108 Content-Type: text/plain; charset=us-ascii -- To unsubscribe: For additional commands: Troubles with the list: --------------090905090308000702070108--