You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/04/29 21:04:02 UTC
svn commit: r1331974 - in
/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb: TDB.java
transaction/DatasetGraphTransaction.java
Author: andy
Date: Sun Apr 29 19:04:02 2012
New Revision: 1331974
URL: http://svn.apache.org/viewvc?rev=1331974&view=rev
Log:
Sync datasets if used old-style.
Modified:
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java?rev=1331974&r1=1331973&r2=1331974&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java Sun Apr 29 19:04:02 2012
@@ -120,7 +120,7 @@ public class TDB
public static void setOptimizerWarningFlag(boolean b)
{ DatasetBuilderStd.setOptimizerWarningFlag(b) ; }
- // XXX Switch to SystemARQ.sync at ARQ 2.7.1
+ // XXX Switch to SystemARQ.sync at ARQ 2.7.1 - beware of sync(DatasetGraph)
/** Sync a TDB-backed Model. Do nothing if not TDB-backed. */
public static void sync(Model model)
@@ -150,13 +150,17 @@ public class TDB
syncObject(dataset) ;
return ;
}
+
if ( dataset instanceof DatasetGraphTransaction )
{
- // Can't sync transactional dataset graphs.
+ DatasetGraphTransaction dsgt = (DatasetGraphTransaction)dataset ;
+ // This only syncs if the dataset has no tbeen used transactionally.
+ // Can't sync transactional dataset graphs (it's meaningless)
+ dsgt.syncIfNotTransactional() ;
return ;
}
- // ARQ 2.7.1 and later - replace with SystenARQ.sync()
+ // ARQ 2.7.1 and later - replace with SystemARQ.sync()
// May be a general purpose dataset with TDB objects in it.
sync(dataset.getDefaultGraph()) ;
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java?rev=1331974&r1=1331973&r2=1331974&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java Sun Apr 29 19:04:02 2012
@@ -126,6 +126,15 @@ public class DatasetGraphTransaction ext
public boolean isInTransaction()
{ return inTransaction.get() ; }
+ /** This method sync the dataset if it has only ever been used non-transactionally.
+ * Otherwise it silently does nothing.
+ */
+ public void syncIfNotTransactional()
+ {
+ if ( ! haveUsedInTransaction )
+ getBaseDatasetGraph().sync() ;
+ }
+
@Override
protected void _begin(ReadWrite readWrite)
{