Return-Path: X-Original-To: apmail-clerezza-dev-archive@www.apache.org Delivered-To: apmail-clerezza-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2B423C9A5 for ; Sun, 14 Jul 2013 09:59:28 +0000 (UTC) Received: (qmail 7269 invoked by uid 500); 14 Jul 2013 09:59:27 -0000 Delivered-To: apmail-clerezza-dev-archive@clerezza.apache.org Received: (qmail 7202 invoked by uid 500); 14 Jul 2013 09:59:18 -0000 Mailing-List: contact dev-help@clerezza.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@clerezza.apache.org Delivered-To: mailing list dev@clerezza.apache.org Received: (qmail 7194 invoked by uid 99); 14 Jul 2013 09:59:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Jul 2013 09:59:13 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_NONE X-Spam-Check-By: apache.org Received-SPF: error (nike.apache.org: local policy) Received: from [194.109.24.27] (HELO smtp-vbr7.xs4all.nl) (194.109.24.27) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Jul 2013 09:59:06 +0000 Received: from [10.0.0.104] (D97AD3BE.cm-3-3d.dynamic.ziggo.nl [217.122.211.190]) (authenticated bits=0) by smtp-vbr7.xs4all.nl (8.13.8/8.13.8) with ESMTP id r6E9wPWE031584 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 14 Jul 2013 11:58:26 +0200 (CEST) (envelope-from minto@xup.nl) Message-ID: <51E27639.1000504@xup.nl> Date: Sun, 14 Jul 2013 11:58:17 +0200 From: Minto van der Sluis Organization: Xup BV User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 To: dev@clerezza.apache.org Subject: Re: ERROR: Quad: object cannot be null References: <51DFF7D8.5020008@xup.nl> <51E0029C.3060204@xup.nl> <51E01D73.1030905@xup.nl> <51E02B4D.6030407@xup.nl> <51E06B8C.5020001@xup.nl> In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: multipart/alternative; boundary="------------020903080105090304060306" X-Virus-Scanned: by XS4ALL Virus Scanner X-Virus-Checked: Checked by ClamAV on apache.org --------------020903080105090304060306 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Hi Reto, If I am correct the NPE I discovered will always happens for fastlaned queries on Jena TDB based TcProviders due to the following line present in BaseTdbTcProvider.java: getDataset().setDefaultModel(null); The NPE can be clearly seen in DatasetImpl if model is null: @Override public void setDefaultModel(Model model) { // Assumes single writer. removeFromCache(dsg.getDefaultGraph()) ; addToCache(model) ; dsg.setDefaultGraph(model.getGraph()) ; } Did you have anything special in mind when you added the null model? Regards, Minto Op 12-7-2013 23:50, Reto Bachmann-Gm�r schreef: > Thanks Minto. I would rather not withdraw the release candidate but > have a new release very soon (max a couple of weeks). > > Reto > > On Fri, Jul 12, 2013 at 10:48 PM, Minto van der Sluis wrote: >> Fixed this with commit r1502677 (CLEREZZA-802) >> >> Please have a close look. Might need to be part of the pending release >> as well. >> >> Regards, >> >> Minto >> >> Op 12-7-2013 18:14, Minto van der Sluis schreef: >>> This time I end up with an NPE, see stack below. >>> >>> My changes resulted in the following >>> >>> public Object executeSparqlQuery(String query, TripleCollection >>> defaultGraph, boolean forceFastlane) throws ParseException { >>> TcProvider singleTargetTcProvider = null; >>> if (forceFastlane) { >>> singleTargetTcProvider = getSingleTargetTcProvider(); >>> } else { >>> final UriRef defaultGraphName = new >>> UriRef("urn:x-temp:/kjsfadfhfasdffds"); >>> SparqlPreParser sparqlPreParser = new SparqlPreParser(this); >>> final Set referencedGraphs = >>> sparqlPreParser.getReferredGraphs(query, defaultGraphName); >>> if ((referencedGraphs != null) && >>> (!referencedGraphs.contains(defaultGraphName))) { >>> singleTargetTcProvider = >>> getSingleTargetTcProvider(referencedGraphs); >>> } >>> } >>> >>> if ((singleTargetTcProvider != null) && (singleTargetTcProvider >>> instanceof QueryableTcProvider)) { >>> return >>> ((QueryableTcProvider)singleTargetTcProvider).executeSparqlQuery(query, >>> null); >>> } >>> final QueryEngine queryEngine = this.queryEngine; >>> if (queryEngine != null) { >>> return queryEngine.execute(this, defaultGraph, query); >>> } else { >>> throw new NoQueryEngineException(); >>> } >>> } >>> >>> private TcProvider getSingleTargetTcProvider() { >>> return providerList.first(); >>> } >>> >>> I guess the following like in BaseTdbTcProvider.executeSparqlQuery() is >>> the culprit: >>> >>> getDataset().setDefaultModel(null); >>> >>> Stacktrace: >>> >>> java.lang.NullPointerException >>> at >>> com.hp.hpl.jena.sparql.core.DatasetImpl.addToCache(DatasetImpl.java:259) >>> at >>> com.hp.hpl.jena.sparql.core.DatasetImpl.setDefaultModel(DatasetImpl.java:214) >>> at >>> org.apache.clerezza.rdf.jena.tdb.storage.BaseTdbTcProvider.executeSparqlQuery(BaseTdbTcProvider.java:39) >>> at >>> org.apache.clerezza.rdf.jena.tdb.storage.ScalableSingleTdbDatasetTcProvider.executeSparqlQuery(ScalableSingleTdbDatasetTcProvider.java:81) >>> at >>> org.apache.clerezza.rdf.core.access.TcManager.executeSparqlQuery(TcManager.java:310) >>> at >>> org.apache.clerezza.rdf.core.access.TcManager.executeSparqlQuery(TcManager.java:282) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>> Method)[:1.7.0_17] >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_17] >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_17] >>> at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_17] >>> at >>> org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)[12:org.apache.aries.proxy.impl:1.0.0] >>> at >>> org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)[12:org.apache.aries.proxy.impl:1.0.0] >>> at >>> org.apache.clerezza.rdf.core.access.$TcManager10360330.executeSparqlQuery(Unknown >>> Source)[181:org.apache.clerezza.rdf.core:0.13.0.SNAPSHOT] >>> at >>> nl.overheid.stelsel.digimelding.astore.storage.clerezza.ClerezzaStorageProvider.query(ClerezzaStorageProvider.java:250)[209:astore-storage-clerezza:0.7.0.SNAPSHOT] >>> >> >> -- >> ir. ing. Minto van der Sluis >> Software innovator / renovator >> Xup BV >> >> Mobiel: +31 (0) 626 014541 >> > -- ir. ing. Minto van der Sluis Software innovator / renovator Xup BV Mobiel: +31 (0) 626 014541 --------------020903080105090304060306--