Patch from bug #43108 - when fetching system properties, use sensible defaults if we're not able to access them

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@566183 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2007-08-15 14:19:08 +00:00
parent 6708ebde80
commit df10c7b072
5 changed files with 29 additions and 8 deletions

View File

@ -36,6 +36,7 @@
</devs>
<release version="3.0.2-FINAL" date="2007-??-??">
<action dev="POI-DEVELOPERS" type="fix">43108 - [PATCH] - Where permissions deny fetching System Properties, use sensible defaults</action>
<action dev="POI-DEVELOPERS" type="fix">43093 - [PATCH] - Fix formula evaluator support for Area3D references to other sheets</action>
<action dev="POI-DEVELOPERS" type="fix">Improvements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this</action>
<action dev="POI-DEVELOPERS" type="fix">42999 - [PATCH] - Fix for HSSFPatriarch positioning problems</action>

View File

@ -33,6 +33,7 @@
<changes>
<release version="3.0.2-FINAL" date="2007-??-??">
<action dev="POI-DEVELOPERS" type="fix">43108 - [PATCH] - Where permissions deny fetching System Properties, use sensible defaults</action>
<action dev="POI-DEVELOPERS" type="fix">43093 - [PATCH] - Fix formula evaluator support for Area3D references to other sheets</action>
<action dev="POI-DEVELOPERS" type="fix">Improvements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this</action>
<action dev="POI-DEVELOPERS" type="fix">42999 - [PATCH] - Fix for HSSFPatriarch positioning problems</action>

View File

@ -38,7 +38,14 @@ import java.util.List;
public abstract class AbstractEscherHolderRecord
extends Record
{
private static final boolean DESERIALISE = System.getProperty("poi.deserialize.escher") != null;
private static boolean DESERIALISE;
static {
try {
DESERIALISE = (System.getProperty("poi.deserialize.escher") != null);
} catch (SecurityException e) {
DESERIALISE = false;
}
}
private List escherRecords;
private byte[] rawData;

View File

@ -52,16 +52,22 @@ class StaticFontMetrics
try
{
fontMetricsProps = new Properties();
if (System.getProperty("font.metrics.filename") != null)
{
String filename = System.getProperty("font.metrics.filename");
File file = new File(filename);
// Check to see if the font metric file was specified
// as a system property
String propFileName = null;
try {
propFileName = System.getProperty("font.metrics.filename");
} catch(SecurityException e) {}
if (propFileName != null) {
File file = new File(propFileName);
if (!file.exists())
throw new FileNotFoundException("font_metrics.properties not found at path " + file.getAbsolutePath());
metricsIn = new FileInputStream(file);
}
else
{
else {
// Use the built-in font metrics file off the classpath
metricsIn = FontDetails.class.getResourceAsStream("/font_metrics.properties");
if (metricsIn == null)
throw new FileNotFoundException("font_metrics.properties not found in classpath");

View File

@ -65,7 +65,13 @@ public class SystemOutLogger extends POILogger
*/
public boolean check(final int level)
{
int currentLevel = Integer.parseInt(System.getProperty("poi.log.level", WARN + ""));
int currentLevel;
try {
currentLevel = Integer.parseInt(System.getProperty("poi.log.level", WARN + ""));
} catch (SecurityException e) {
currentLevel = POILogger.DEBUG;
}
if (level >= currentLevel)
return true;
else