Håvard Wanvik Stenersen created JENA-1140:
---------------------------------------------
Summary: Jena 3.0.1 model halts reading large rdf file partway
through
Key: JENA-1140
URL: https://issues.apache.org/jira/browse/JENA-1140
Project: Apache Jena
Issue Type: Bug
Components: Jena, RDF API
Affects Versions: Jena 3.0.1
Environment: Eclipse on Windows 7, 8, Mac
Reporter: Håvard Wanvik Stenersen
Fix For: Jena 2.7.4
The progress halts, or becomes slow to the point where progress is unnoticable,
without execution stopping or crashing, when attempting to read a large
(~250MB) turtle rdf file into a Jena model, created with
org.apache.jena.rdf.model.ModelFactory.createDefaultModel(), using
org.apache.jena.rdf.model.Model's read() method (tested with both the methods
using String url and InputStream in).
The progress will continue until the process uses 1-1.5GB RAM, and progress
halts, but execution neither stops nor crashes. The code on the bottom displays
the behaviour with a progress bar for the file being read.
This has been the case for my laptop running Windows 10 using
Eclipse
Version: Mars.1 Release (4.5.1)
Build id: 20150924-1200
My desktop running Windows 7 using
Eclipse
Version: Kepler Service Release 2
Build id: 20140224-627
My professor's Mac using Eclipse, however I don't know which versions.
All three systems were employing Apache Jena 3.0.1, and all of them experienced
the same issue.
I have attempted to manually set the max heap size of the JVM by using the
-Xmx3G, however the result did not change.
Employing Apache Jena Version 2.7.4, and using the same resources in the
com.hp.hpl package instead of org.apache fixed the problem on all three systems.
Here is the java test code:
{code:title=ReadLotsOfRDF.java|borderStyle=solid}
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import javax.swing.JFrame;
import javax.swing.ProgressMonitorInputStream;
public class ReadLotsOfRDF {
public static void main(String[] args) throws java.io.IOException {
// create a test frame with a "press me" button
final JFrame f = new JFrame("Sample");
Model m = ModelFactory.createDefaultModel();
m.read(new BufferedInputStream(
new ProgressMonitorInputStream(f,"Progress",
new
FileInputStream("LSQ-BM.ttl"))), null, "TTL");
System.out.println(m.size());
}
}
{code}
The "LSQ-BM.ttl" file can be (and was) retrieved from
[here|https://drive.google.com/file/d/0B1tUDhWNTjO-UGhDTWx5U1EyWTg/view].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)