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 2013/02/10 20:42:48 UTC
svn commit: r1444590 -
/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
Author: andy
Date: Sun Feb 10 19:42:48 2013
New Revision: 1444590
URL: http://svn.apache.org/r1444590
Log:
Thread safe initialization
Modified:
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java?rev=1444590&r1=1444589&r2=1444590&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java Sun Feb 10 19:42:48 2013
@@ -43,20 +43,25 @@ public class RIOT
SysRIOT.strictMode = state ;
SysRIOT.StrictXSDLexicialForms = state ;
}
-
- static boolean initialized = false ;
- public static synchronized void init()
+
+ private static volatile boolean initialized = false ;
+ private static final Object initLock = new Object() ;
+
+ public static void init()
{
- if ( initialized ) return ;
- initialized = true ;
-
- String NS = RIOT.PATH ;
- SystemInfo sysInfo2 = new SystemInfo(RIOT.riotIRI, RIOT.VERSION, RIOT.BUILD_DATE) ;
- ARQMgt.register(NS+".system:type=SystemInfo", sysInfo2) ;
- SystemARQ.registerSubSystem(sysInfo2) ;
-
- RDFLanguages.init() ;
- RDFParserRegistry.init() ;
- IO_Jena.wireIntoJena() ;
- }
+ if ( initialized )
+ return ;
+ synchronized(initLock) {
+ if ( initialized ) return ;
+ initialized = true ;
+
+ String NS = RIOT.PATH ;
+ SystemInfo sysInfo2 = new SystemInfo(RIOT.riotIRI, RIOT.VERSION, RIOT.BUILD_DATE) ;
+ ARQMgt.register(NS+".system:type=SystemInfo", sysInfo2) ;
+ SystemARQ.registerSubSystem(sysInfo2) ;
+
+ RDFLanguages.init() ;
+ RDFParserRegistry.init() ;
+ IO_Jena.wireIntoJena() ;
+ } }
}