[
https://issues.apache.org/jira/browse/CLEREZZA-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hasan Hasan closed CLEREZZA-418.
--------------------------------
Resolution: Abandoned
> Strange behaviour of GraphNode
> ------------------------------
>
> Key: CLEREZZA-418
> URL: https://issues.apache.org/jira/browse/CLEREZZA-418
> Project: Clerezza
> Issue Type: Question
> Environment: win7
> Reporter: franco fallica
> Priority: Minor
>
> Hi all,
> I just ran into an interesting issue, and I want to let you know.
> I've got a method like that. ( We use that GraphNode a lot before we pass it
> to that method)
> protected void addToLuceneIndex(GraphNode clip){
> (0)
> // then some stuff like that
> Document doc = new Document();
> Iterator<Literal> iter;
> doc.add(new Field(LuceneDocumentClips.url,
> URLParser.formIndexableURL(((UriRef) clip.getNode()).getUnicodeString()),
> Field.Store.YES, Field.Index.NOT_ANALYZED));
> (1) System.out.println("before getLiterals");
> iter = clip.getLiterals(DCTERMS.title);
> (2) System.out.println("after getLiterals");
> while (iter.hasNext()) {
> doc.add(new Field(LuceneDocumentClips.title,
> iter.next().getLexicalForm().trim(), Field.Store.NO, Field.Index.ANALYZED));
> }
> // and some more
> }
> with this method. Line (2) "after getLiterals" is never reached and jvm
> throws a OutOfMemoryException (Heap space) right on getLiterals()
> I changed the method on line (0) to:
> protected void addToLuceneIndex(GraphNode clipNode) {
> (0) GraphNode clip = new GraphNode(clipNode.getNode(),
> this.getBundleGraph());
> // the same stuff as before
> ...
> ...
> }
> and strangely it works!
> Why in gods name can instatiating a new GraphNode (of a allready instatiated
> node) fix a OutOfMemoryException?
> even stranger - CommittableGraphNode fixes the issue as well :
> protected void addToLuceneIndex(GraphNode clipNode) {
> (0) CommittableGraphNode clip = new CommittableGraphNode
> (clipNode.getNode(),new CommittableMGraph(new LockableMGraph(
> this.getBundleGraph())));
> // the same stuff as before
> ...
> ...
> }
> and just to make things more interessting. the following fixes it too.
> protected void addToLuceneIndex(GraphNode clipNode) {
> (0) GraphNode clip = new GraphNode (clipNode.getNode(),new
> CommittableMGraph(new LockableMGraph( this.getBundleGraph())));
> // the same stuff as before
> ...
> ...
> }
--
This message was sent by Atlassian Jira
(v8.20.1#820001)