vivo-project / VIVO

VIVO is an extensible semantic web application for research discovery and showcasing scholarly work
http://vivoweb.org
BSD 3-Clause "New" or "Revised" License
208 stars 131 forks source link

VIVO-158: ConcurrentModificationExceptions in SimpleReasoner.addedTBoxStatement() #1850

Closed chenejac closed 6 years ago

chenejac commented 11 years ago

Jon Corson-Rikert (Migrated from VIVO-158) said:

Moved from https://issues.library.cornell.edu/browse/NIHVIVO-3903:

A bunch (thousands) of these appeared when loading the ISF.

It looks like addedTBoxStatement() is not acquiring a read lock on tboxModel before it attempts to call getOntClass().

2012-07-12 14:53:02,965 ERROR [SimpleReasoner] Exception while adding inference(s) java.util.ConcurrentModificationException at com.hp.hpl.jena.mem.HashCommon$BasicKeyIterator.hasNext(HashCommon.java:338) at com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:86) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:64) at com.hp.hpl.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:43) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:64) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:64) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:64) at com.hp.hpl.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:43) at com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:86) at com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:86) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:64) at com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:86) at com.hp.hpl.jena.ontology.impl.OWLProfile$SupportsCheck.allTypes(OWLProfile.java:241) at com.hp.hpl.jena.ontology.impl.OWLProfile$SupportsCheck.hasType(OWLProfile.java:284) at com.hp.hpl.jena.ontology.impl.OWLProfile$3.doCheck(OWLProfile.java:331) at com.hp.hpl.jena.ontology.impl.OWLProfile.isSupported(OWLProfile.java:199) at com.hp.hpl.jena.ontology.impl.OntClassImpl$1.canWrap(OntClassImpl.java:90) at com.hp.hpl.jena.ontology.impl.OntClassImpl$1.wrap(OntClassImpl.java:78) at com.hp.hpl.jena.enhanced.Personality.newInstance(Personality.java:84) at com.hp.hpl.jena.enhanced.EnhGraph.getNodeAs(EnhGraph.java:130) at com.hp.hpl.jena.ontology.impl.OntModelImpl.findByURIAs(OntModelImpl.java:2768) at com.hp.hpl.jena.ontology.impl.OntModelImpl.getOntClass(OntModelImpl.java:869) at edu.cornell.mannlib.vitro.webapp.reasoner.SimpleReasoner.addedTBoxStatement(SimpleReasoner.java:234) at edu.cornell.mannlib.vitro.webapp.reasoner.SimpleReasonerTBoxListener$TBoxUpdateProcessor.run(SimpleReasonerTBoxListener.java:104)

chenejac commented 11 years ago

Brian Lowe said:

Added read lock.