s/Manged/Mangled Rob
On 23/07/2014 14:30, "[email protected]" <[email protected]> wrote: >Author: andy >Date: Wed Jul 23 13:30:04 2014 >New Revision: 1612831 > >URL: http://svn.apache.org/r1612831 >Log: >Protect against broken prefix table. > >Modified: > >jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetPrefixe >sTDB.java > >Modified: >jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetPrefixe >sTDB.java >URL: >http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/ >jena/tdb/store/DatasetPrefixesTDB.java?rev=1612831&r1=1612830&r2=1612831&v >iew=diff >========================================================================== >==== >--- >jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetPrefixe >sTDB.java (original) >+++ >jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetPrefixe >sTDB.java Wed Jul 23 13:30:04 2014 >@@ -28,6 +28,7 @@ import java.util.Set ; > import org.apache.jena.atlas.iterator.Iter ; > import org.apache.jena.atlas.lib.ColumnMap ; > import org.apache.jena.atlas.lib.Tuple ; >+import org.apache.jena.atlas.logging.Log ; > > import com.hp.hpl.jena.graph.Node ; > import com.hp.hpl.jena.graph.NodeFactory ; >@@ -165,15 +166,24 @@ public class DatasetPrefixesTDB implemen > @Override > public synchronized Map<String, String> readPrefixMap(String >graphName) > { >+ Map<String, String> map = new HashMap<>() ; >+ // One class of problem from mangled databases >+ // (non-trasnactional, not shutdown cleanly) >+ // ends up with NPE access the node table from >+ // prefix index. As prefixes are "nice extras" >+ > Node g = NodeFactory.createURI(graphName) ; > Iterator<Tuple<Node>> iter = nodeTupleTable.find(g, null, null) ; >- Map<String, String> map = new HashMap<>() ; > for ( ; iter.hasNext() ; ) > { >- Tuple<Node> t = iter.next(); >- String prefix = t.get(1).getLiteralLexicalForm() ; >- String uri = t.get(2).getURI() ; >- map.put(prefix, uri) ; >+ try { >+ Tuple<Node> t = iter.next(); >+ String prefix = t.get(1).getLiteralLexicalForm() ; >+ String uri = t.get(2).getURI() ; >+ map.put(prefix, uri) ; >+ } catch (Exception ex) { >+ Log.warn(this, "Manged prefix map: graph >name="+graphName, ex) ; >+ } > } > Iter.close(iter) ; > return map ; > >
