You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2013/10/25 07:10:20 UTC

svn commit: r1535634 - /stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java

Author: rwesten
Date: Fri Oct 25 05:10:20 2013
New Revision: 1535634

URL: http://svn.apache.org/r1535634
Log:
fix for STANBOL-1193 in the 0.12.0 release branch

Modified:
    stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java

Modified: stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java
URL: http://svn.apache.org/viewvc/stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java?rev=1535634&r1=1535633&r2=1535634&view=diff
==============================================================================
--- stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java (original)
+++ stanbol/branches/release-0.12/entityhub/yard/solr/src/main/java/org/apache/stanbol/entityhub/yard/solr/impl/SolrYard.java Fri Oct 25 05:10:20 2013
@@ -690,25 +690,34 @@ public class SolrYard extends AbstractYa
         if(closed){
             log.warn("The SolrYard '{}' was already closed!",config.getName());
         }
+        final UpdateRequest update = new UpdateRequest();
+        if (!immediateCommit) {
+            update.setCommitWithin(commitWithin);
+        }
+        update.add(inputDocs);
         try {
-            UpdateRequest update = new UpdateRequest();
-            if (!immediateCommit) {
-                update.setCommitWithin(commitWithin);
-            }
-            update.add(inputDocs);
-            update.process(server);
-            if (immediateCommit) {
-                server.commit();
+            AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
+                public Object run() throws IOException, SolrServerException {
+		            update.process(server);
+		            if (immediateCommit) {
+		                server.commit();
+		            }
+		            return null;
+                }
+            });
+            long ready = System.currentTimeMillis();
+            log.debug(String.format(
+                "Processed store request for %d documents in %dms (created %dms| stored%dms)", inputDocs.size(),
+                ready - start, created - start, ready - created));
+        } catch (PrivilegedActionException pae){
+            if(pae.getException() instanceof SolrServerException){
+                throw new YardException("Exception while adding Documents to the Solr Server!", pae.getException());
+            } else if( pae.getException() instanceof IOException){
+                throw new YardException("Unable to access SolrServer", pae.getException());
+            } else {
+                throw RuntimeException.class.cast(pae.getException());
             }
-        } catch (SolrServerException e) {
-            throw new YardException("Exception while adding Documents to the Solr Server!", e);
-        } catch (IOException e) {
-            throw new YardException("Unable to access Solr server", e);
         }
-        long ready = System.currentTimeMillis();
-        log.debug(String.format(
-            "Processed store request for %d documents in %dms (created %dms| stored%dms)", inputDocs.size(),
-            ready - start, created - start, ready - created));
         return added;
     }
 
@@ -856,9 +865,8 @@ public class SolrYard extends AbstractYa
     }
 
     @Override
-    public final Representation update(Representation representation) throws IllegalArgumentException,
-                                                                     NullPointerException,
-                                                                     YardException {
+    public final Representation update(Representation representation) 
+    		throws IllegalArgumentException, NullPointerException, YardException {
         if (representation == null) {
             throw new IllegalArgumentException("The parsed Representation MUST NOT be NULL!");
         }
@@ -867,15 +875,13 @@ public class SolrYard extends AbstractYa
             return store(representation); // there is no "update" for solr
         } else {
             throw new IllegalArgumentException("Parsed Representation " + representation.getId()
-                                               + " in not managed by this Yard " + getName() + "(id="
-                                               + getId() + ")");
+            		+ " in not managed by this Yard " + getName() + "(id=" + getId() + ")");
         }
     }
 
     @Override
-    public final Iterable<Representation> update(Iterable<Representation> representations) throws YardException,
-                                                                                          IllegalArgumentException,
-                                                                                          NullPointerException {
+    public final Iterable<Representation> update(Iterable<Representation> representations)
+    		throws YardException, IllegalArgumentException, NullPointerException {
         if (representations == null) {
             throw new IllegalArgumentException("The parsed Iterable over Representations MUST NOT be NULL!");
         }
@@ -894,9 +900,8 @@ public class SolrYard extends AbstractYa
         try {
             ids = checkRepresentations(ids); // returns the ids found in the solrIndex
         } catch (SolrServerException e) {
-            throw new YardException(
-                    "Error while searching for alredy present documents before executing the actual update for the parsed Representations",
-                    e);
+            throw new YardException("Error while searching for alredy present documents "
+            		+ "before executing the actual update for the parsed Representations", e);
         } catch (IOException e) {
             throw new YardException("Unable to access SolrServer", e);
         }
@@ -939,11 +944,10 @@ public class SolrYard extends AbstractYa
             }
         }
         long ready = System.currentTimeMillis();
-        log.info(String
-                .format(
-                    "Processed updateRequest for %d documents (%d in index | %d updated) in %dms (checked %dms|created %dms| stored%dms)",
-                    numDocs, ids.size(), updated.size(), ready - start, checked - start, created - checked,
-                    ready - created));
+        log.info(String.format( "Processed updateRequest for %d documents (%d in index "
+        		+ "| %d updated) in %dms (checked %dms|created %dms| stored%dms)",
+        		numDocs, ids.size(), updated.size(), ready - start, checked - start, 
+        		created - checked, ready - created));
         return updated;
     }