History | Log In     View a printable version of the current page. Get help!  
Issue Details [XML]

Key: RIO-15
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Arjohn Kampman
Reporter: Arjohn Kampman
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Rio

Turtle parser goes into infinite loop in when bNode ID preservation is enabled

Created: 11/Apr/05 10:53 AM   Updated: 23/Sep/05 05:31 PM
Component/s: Turtle parser
Affects Version/s: 1.0.2, 1.0.1, 1.0, 1.0.3
Fix Version/s: 1.0.4


 Description   
Bug reported via e-mail by Benja Fallenstein:

The RIO Turtle parser goes into an infinite loop in _createBNode(String) when _preserveBNodeIds is true. Looking at the code in CVS, this seems to happen always when a new node ID is encountered for the first time:

private BNode _createBNode(String nodeID)
    throws ParseException
  {
    // Maybe the node ID has been used before:
    BNode result = (BNode)_bNodeIdMap.get(nodeID);

if (result == null) {
      // This is a new node ID, create a new BNode object for it
      if (_preserveBNodeIds) {
        result = _createBNode(nodeID);
      }
      else {
        result = _createBNode();
      }

// Remember it, the nodeID might occur again.
      _bNodeIdMap.put(nodeID, result);
    }

return result;
  }

I suppose the recursive _createBNode(nodeID) should look something like _valFactory.createBNode(nodeID)?

Cheers,
- Benja

 All   Comments   Change History      Sort Order:
Change by Arjohn Kampman [11/Apr/05 11:00 AM]
Field Original Value New Value
Fix Version/s 1.0.4 [ 10113 ]

Change by Arjohn Kampman [11/Apr/05 01:42 PM]
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]

Change by Jeen Broekstra [23/Sep/05 05:31 PM]
Status Resolved [ 5 ] Closed [ 6 ]