org.apache.axiom.util.stax.debug
Class UnclosedReaderDetector

java.lang.Object
  extended by javax.xml.stream.XMLInputFactory
      extended by org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper
          extended by org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory
              extended by org.apache.axiom.util.stax.debug.UnclosedReaderDetector

public class UnclosedReaderDetector
extends WrappingXMLInputFactory

XMLInputFactory wrapper that enabled detection of unclosed stream readers. An unclosed reader will be detected when the XMLStreamReader instance is finalized by the virtual machine. When this happens, a warning message will be logged. The log message contains the stack trace of the instruction that created the reader.

Note that for this to work, the detector must compute the stack trace every time a reader is created. Since this may have a significant performance impact, the wrapper should only used during testing and debugging.


Field Summary
 
Fields inherited from class javax.xml.stream.XMLInputFactory
ALLOCATOR, IS_COALESCING, IS_NAMESPACE_AWARE, IS_REPLACING_ENTITY_REFERENCES, IS_SUPPORTING_EXTERNAL_ENTITIES, IS_VALIDATING, REPORTER, RESOLVER, SUPPORT_DTD
 
Constructor Summary
UnclosedReaderDetector(XMLInputFactory parent)
          Constructor.
 
Method Summary
protected  XMLStreamReader wrap(XMLStreamReader reader)
          Wrap a reader created from this factory.
 
Methods inherited from class org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory
createFilteredReader, createFilteredReader, createXMLEventReader, createXMLEventReader, createXMLEventReader, createXMLEventReader, createXMLEventReader, createXMLEventReader, createXMLEventReader, createXMLStreamReader, createXMLStreamReader, createXMLStreamReader, createXMLStreamReader, createXMLStreamReader, createXMLStreamReader, wrap
 
Methods inherited from class org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper
getEventAllocator, getProperty, getXMLReporter, getXMLResolver, isPropertySupported, setEventAllocator, setProperty, setXMLReporter, setXMLResolver
 
Methods inherited from class javax.xml.stream.XMLInputFactory
newFactory, newFactory, newInstance, newInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnclosedReaderDetector

public UnclosedReaderDetector(XMLInputFactory parent)
Constructor.

Parameters:
parent - the parent factory
Method Detail

wrap

protected XMLStreamReader wrap(XMLStreamReader reader)
Description copied from class: WrappingXMLInputFactory
Wrap a reader created from this factory. Implementations should override this method if they which to wrap XMLStreamReader instances created from the factory. The default implementation simply returns the unwrapped reader.

Overrides:
wrap in class WrappingXMLInputFactory
Parameters:
reader - the reader to wrap
Returns:
the wrapped reader


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.