Another CacheFolder.set breaking segments.
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) {