Hello all,

I've ran across a case with Resolver that looks like not honoring the "xml.catalog.verbosity" system property.

I run org.apache.xalan.xslt.Process from Xalan 2.7.1 with org.apache.xml.resolver.tools.CatalogResolver registered both as URIRESOLVER and ENTITYRESOLVER.

All the settings for Resolver that I set using CatalogManager.properties are obeyed perfectly. But if I turn from using CatalogManager.properties to system properties, then all the settings I use seem to be obeyed except "xml.catalog.verbosity".

I've looked into org.apache.xalan.xslt.Process and found that it just creates and registers the resolver expecting that the latter will take care of itself.

I've looked into CatalogManager code and found a sophisticated lazy properties interrogation mechanism there. There are also two pieces of code in readProperties() and queryVerbosity() commented as "hack". Both take special care about "verbosity". They seem to work ok for the case of CatalogManager.properties, but in case of system property being in use they seem to never have a chance to do their job...

Frankly I do not feel I get the whole picture of this lazy mechanism in my head perfectly. But my guess is that verbosity is a special property possibly not good for lazy interrogation. Perhaps the CatalogManager constructor might be the right place to set it up from the very beginning, right after creation of the Debug object... Otherwise chances are that the first debug.message() call will be made with the Debug object still not being set up...

Or do I miss something?

Regards,
Sergey

Reply via email to