Infinite loop in OMElement possible
-----------------------------------

                 Key: WSCOMMONS-182
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-182
             Project: WS-Commons
          Issue Type: Bug
          Components: AXIOM
         Environment: Windows XP, Java 1.5_09, Axiom 1.1.1.
            Reporter: Ryan Nelsestuen


> I discovered today that under certain circumstances you can create an 
> OMElementImpl that will go into an infinte loop if you call 
> getFirstElement();  The specific example I found is if you create an 
> OMElement via the SAXOMBuilder and pass the SAXOMBuilder and 
> incomplete/malformed series of events (example code below).  The 
> workaround is to check isComplete() before calling getFirstElement(), 
> but it seems like there should be some other way to avoid this condition.
>

package axiomtest;

import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.SAXOMBuilder;
import org.xml.sax.Attributes;

public class InfinteLoopDemo {

    public static void main(String[] args) throws Exception{
        
        SAXOMBuilder builder = new SAXOMBuilder();
        
        //builder.startPrefixMapping("test", "http://test.com";);
        builder.startDocument();
        builder.startElement("http://test.com";, "test", "test:http://test.com";, 
new Attributes(){

            public int getIndex(String uri, String localName) {
                // TODO Auto-generated method stub
                return 0;
            }

            public int getIndex(String qName) {
                // TODO Auto-generated method stub
                return 0;
            }

            public int getLength() {
                // TODO Auto-generated method stub
                return 0;
            }

            public String getLocalName(int index) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getQName(int index) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getType(int index) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getType(String uri, String localName) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getType(String qName) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getURI(int index) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getValue(int index) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getValue(String uri, String localName) {
                // TODO Auto-generated method stub
                return null;
            }

            public String getValue(String qName) {
                // TODO Auto-generated method stub
                return null;
            }
            
        });
        OMElement root = builder.getRootElement();
        OMElement firstChild = root.getFirstElement();
        System.out.println("First child is: " + firstChild);
        
    }
    
    
}



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to