Another CacheFolder.set breaking segments.
authorJan Lahoda <jlahoda@netbeans.org>
Tue, 11 Sep 2012 10:15:09 +0200
changeset 870d124ec5ef94d
parent 869 d8892c7b5dea
child 871 3d7330f2801e
Another CacheFolder.set breaking segments.
remoting/server/web/base.web.api/src/org/netbeans/modules/jackpot30/backend/base/CategoryStorage.java
     1.1 --- a/remoting/server/web/base.web.api/src/org/netbeans/modules/jackpot30/backend/base/CategoryStorage.java	Tue Sep 11 08:40:30 2012 +0200
     1.2 +++ b/remoting/server/web/base.web.api/src/org/netbeans/modules/jackpot30/backend/base/CategoryStorage.java	Tue Sep 11 10:15:09 2012 +0200
     1.3 @@ -48,7 +48,6 @@
     1.4  import java.io.InputStream;
     1.5  import java.lang.ref.Reference;
     1.6  import java.lang.ref.SoftReference;
     1.7 -import java.lang.reflect.Field;
     1.8  import java.net.URL;
     1.9  import java.util.ArrayList;
    1.10  import java.util.Collections;
    1.11 @@ -65,7 +64,6 @@
    1.12  import java.util.logging.Logger;
    1.13  import org.apache.lucene.analysis.KeywordAnalyzer;
    1.14  import org.codeviation.pojson.Pojson;
    1.15 -import org.netbeans.modules.parsing.impl.indexing.CacheFolder;
    1.16  import org.netbeans.modules.parsing.lucene.support.Index;
    1.17  import org.netbeans.modules.parsing.lucene.support.IndexManager;
    1.18  import org.openide.filesystems.FileObject;
    1.19 @@ -138,19 +136,8 @@
    1.20  
    1.21      private Iterable<? extends URL> getCategoryIndexFolders() {
    1.22          try {
    1.23 -            FileObject root = getCacheRoot();
    1.24 -            CacheFolder.setCacheFolder(root);
    1.25              Set<URL> result = new HashSet<URL>();
    1.26 -
    1.27 -            CacheFolder.getDataFolder(new URL("file:/"), true);
    1.28 -            
    1.29 -            //XXX:
    1.30 -            Field invertedSegmentsField = CacheFolder.class.getDeclaredField("invertedSegments");
    1.31 -
    1.32 -            invertedSegmentsField.setAccessible(true);
    1.33 -            
    1.34 -            @SuppressWarnings("unchecked")
    1.35 -            Map<String, String> invertedSegments = (Map<String, String>) invertedSegmentsField.get(null);
    1.36 +            Map<String, String> invertedSegments = getInvertedSegments();
    1.37  
    1.38              for (String c : invertedSegments.keySet()) {
    1.39                  if (!c.startsWith("rel:")) continue;
    1.40 @@ -160,10 +147,6 @@
    1.41              return result;
    1.42          } catch (IllegalArgumentException ex) {
    1.43              Logger.getLogger(CategoryStorage.class.getName()).log(Level.SEVERE, null, ex);
    1.44 -        } catch (IllegalAccessException ex) {
    1.45 -            Logger.getLogger(CategoryStorage.class.getName()).log(Level.SEVERE, null, ex);
    1.46 -        } catch (NoSuchFieldException ex) {
    1.47 -            Logger.getLogger(CategoryStorage.class.getName()).log(Level.SEVERE, null, ex);
    1.48          } catch (SecurityException ex) {
    1.49              Logger.getLogger(CategoryStorage.class.getName()).log(Level.SEVERE, null, ex);
    1.50          } catch (IOException ex) {
    1.51 @@ -219,20 +202,25 @@
    1.52          }
    1.53      }
    1.54  
    1.55 +    private Map<String, String> getInvertedSegments() throws IOException {
    1.56 +        FileObject root = getCacheRoot();
    1.57 +        FileObject segments = root.getFileObject("segments");
    1.58 +
    1.59 +        if (segments == null) return null;
    1.60 +
    1.61 +        Properties segmentsMap = loadProperties(segments);
    1.62 +        Map<String, String> invertedSegments = new HashMap<String, String>();
    1.63 +
    1.64 +        for (Entry<Object, Object> e : segmentsMap.entrySet()) {
    1.65 +            invertedSegments.put((String) e.getValue(), (String) e.getKey());
    1.66 +        }
    1.67 +
    1.68 +        return invertedSegments;
    1.69 +    }
    1.70 +
    1.71      public File getSegment(String relPath) {
    1.72          try {
    1.73 -            FileObject root = getCacheRoot();
    1.74 -            FileObject segments = root.getFileObject("segments");
    1.75 -
    1.76 -            if (segments == null) return null;
    1.77 -
    1.78 -            Properties segmentsMap = loadProperties(segments);
    1.79 -            Map<String, String> invertedSegments = new HashMap<String, String>();
    1.80 -
    1.81 -            for (Entry<Object, Object> e : segmentsMap.entrySet()) {
    1.82 -                invertedSegments.put((String) e.getValue(), (String) e.getKey());
    1.83 -            }
    1.84 -
    1.85 +            Map<String, String> invertedSegments = getInvertedSegments();
    1.86              String segment = invertedSegments.get(relPath);
    1.87  
    1.88              if (segment == null) {