[exo-jcr-commits] exo-jcr SVN: r2797 - in jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource: jcr and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jul 16 07:39:08 EDT 2010


Author: aparfonov
Date: 2010-07-16 07:39:07 -0400 (Fri, 16 Jul 2010)
New Revision: 2797

Modified:
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/JcrURLConnection.java
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/jcr/Handler.java
Log:
EXOJCR-859 : 

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/JcrURLConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/JcrURLConnection.java	2010-07-15 14:11:57 UTC (rev 2796)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/JcrURLConnection.java	2010-07-16 11:39:07 UTC (rev 2797)
@@ -45,7 +45,25 @@
 
    private Session session;
 
+   private boolean closeSessionProvider;
+
    public JcrURLConnection(UnifiedNodeReference nodeReference, SessionProvider sessionProvider,
+      NodeRepresentationService nodeRepresentationService, boolean closeSessionProvider) throws MalformedURLException
+   {
+
+      super(nodeReference.getURL());
+      this.sessionProvider = sessionProvider;
+      this.nodeReference = nodeReference;
+      this.nodeRepresentationService = nodeRepresentationService;
+      this.closeSessionProvider = closeSessionProvider;
+
+      doOutput = false;
+      allowUserInteraction = false;
+      useCaches = false;
+      ifModifiedSince = 0;
+   }
+
+   public JcrURLConnection(UnifiedNodeReference nodeReference, SessionProvider sessionProvider,
       NodeRepresentationService nodeRepresentationService) throws MalformedURLException
    {
 
@@ -312,7 +330,10 @@
    {
       try
       {
-         sessionProvider.close();
+         if (closeSessionProvider)
+         {
+            sessionProvider.close();
+         }
       }
       catch (Throwable t)
       {

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/jcr/Handler.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/jcr/Handler.java	2010-07-15 14:11:57 UTC (rev 2796)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/resource/jcr/Handler.java	2010-07-16 11:39:07 UTC (rev 2797)
@@ -105,12 +105,18 @@
          // ThreadLocalSessionProvider or System SessionProvider
          SessionProvider sessionProvider = threadLocalSessionProviderService.getSessionProvider(null);
 
+         boolean closeSessionProvider = false;
          if (sessionProvider == null && ConversationState.getCurrent() != null)
+         {
             sessionProvider =
                (SessionProvider)ConversationState.getCurrent().getAttribute(SessionProvider.SESSION_PROVIDER);
+         }
 
          if (sessionProvider == null)
-            sessionProvider = SessionProvider.createSystemProvider();
+         {
+            sessionProvider = SessionProvider.createAnonimProvider();
+            closeSessionProvider = true;
+         }
 
          String repositoryName = nodeReference.getRepository();
          if (repositoryName != null && repositoryName.length() > 0)
@@ -125,7 +131,8 @@
             sessionProvider.setCurrentWorkspace(workspaceName);
          }
 
-          JcrURLConnection conn = new JcrURLConnection(nodeReference, sessionProvider, nodeRepresentationService);
+         JcrURLConnection conn =
+            new JcrURLConnection(nodeReference, sessionProvider, nodeRepresentationService, closeSessionProvider);
          return conn;
 
       }



More information about the exo-jcr-commits mailing list