Hi,

I've caught the following NullPointerException:

org.apache.excalibur.source.impl.validity.AggregatedValidity.isValid(AggregatedValidity.java:45)
org.apache.cocoon.components.validation.impl.CachingValidator.getSchema(CachingValidator.java:129)
org.apache.cocoon.components.validation.impl.AbstractValidator.getValidationHandler(AbstractValidator.java:330)
org.apache.cocoon.components.validation.impl.AbstractValidator.getValidationHandler(AbstractValidator.java:244)
org.apache.cocoon.transformation.ValidatingTransformer.setup(ValidatingTransformer.java:135)

So what is happening? It appeared that AggregatedValidity.m_list array list 
held null element. The null element was added to m_list in ValidationResolver. 
resolveSource method:
        /* Record the current source in the validities to return */
        this.sourceValidity.add(source.getValidity());

The javadoc for Source.getValidity() says:
Get the Validity object. This can either wrap the last modification date or 
some expiry information or anything else describing this object's validity.
If it is currently not possible to calculate such an information, null is 
returned.

The fact is that my Source is being loaded from XML DB by custom generator and 
it seems to be correct that validity is null. I suppose it's a bug and it can 
be fixed in the following way:
        /* Record the current source in the validities to return */
        If (source.getValidity() != null) 
this.sourceValidity.add(source.getValidity());

This worked for me. I suggest this as an official commit.

Best regards,
Ivan Lagunov

Reply via email to