private static final int getPrecacheSize() {
        String prop = null;
        long propParsed;

        try {
            prop = System.getProperty(PRECACHE_PROPERTY);
        } catch (SecurityException e) {
            // security manager stopped us so use default
            // FIXME: should we log this somewhere?
            return DEFAULT_PRECACHE_SIZE;
        }
        if (prop == null) {
            return DEFAULT_PRECACHE_SIZE;
        }

        // empty value
        // FIXME: should we log this somewhere?
        if (prop.length() <= 0) {
            return DEFAULT_PRECACHE_SIZE;
        }

        try {
            propParsed = Long.parseLong(prop);
        } catch (NumberFormatException e) {
            // not a valid number
            // FIXME: should we log this somewhere?
            return DEFAULT_PRECACHE_SIZE;
        }

        // treat negative value as no cache...
        if (propParsed < 0) {
            return 0;
        }

        // FIXME: should we log this somewhere?
        if (propParsed > Integer.MAX_VALUE) {
            return Integer.MAX_VALUE;
        }

        return (int) propParsed;
    }
Figure out the size of the precache.

@return The parsed value of the system property
{@link #PRECACHE_PROPERTY} or {@link #DEFAULT_PRECACHE_SIZE} if
the property is not set, not a number or retrieving results in a
{@link SecurityException}. If the parsed value is zero or
negative no cache will be created. If the value is larger than
{@link Integer#MAX_VALUE} then Integer#MAX_VALUE will be used.
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/unsigned/UInteger.java