This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 15378
Collapse All | Expand All

(-)FolderOrder.java (-2 / +16 lines)
Lines 37-46 Link Here
37
    /** a static map with (FileObject, Reference (Folder))
37
    /** a static map with (FileObject, Reference (Folder))
38
     */
38
     */
39
    private static final WeakHashMap map = new WeakHashMap (101);
39
    private static final WeakHashMap map = new WeakHashMap (101);
40
    /** A static of known folder orders. Though we hold the
41
     * FolderOrder with a soft reference which can be collected, even
42
     * if this happens we would like the new FolderOrder to have any
43
     * previously determined order attribute. Otherwise under obscure
44
     * circumstances (#15381) it is possible for the IDE to go into an
45
     * endless loop recalculating folder orders, since they keep
46
     * getting collected.
47
     */
48
    private static final Map knownOrders = Collections.synchronizedMap(new WeakHashMap(50)); // Map<FileObject, Object>
40
    
49
    
41
50
42
    /** map of primary files of objects to their index or null */
51
    /** map of names of primary files of objects to their index or null */
43
    private Map order; // Map<FileObject,Integer>
52
    private Map order; // Map<String,Integer>
44
    /** file to store data in */
53
    /** file to store data in */
45
    private FileObject folder;
54
    private FileObject folder;
46
    /** if true, partial orderings on disk should be ignored for files in the order */
55
    /** if true, partial orderings on disk should be ignored for files in the order */
Lines 269-274 Link Here
269
        doRead (o);
278
        doRead (o);
270
        
279
        
271
        previous = o;
280
        previous = o;
281
        if (previous != null) {
282
            knownOrders.put(folder, previous);
283
        }
272
        
284
        
273
        FolderList.changedFolderOrder (folder);
285
        FolderList.changedFolderOrder (folder);
274
    }
286
    }
Lines 384-389 Link Here
384
        FolderOrder order = ref == null ? null : (FolderOrder)ref.get ();
396
        FolderOrder order = ref == null ? null : (FolderOrder)ref.get ();
385
        if (order == null) {
397
        if (order == null) {
386
            order = new FolderOrder (folder);
398
            order = new FolderOrder (folder);
399
            order.previous = knownOrders.get(folder);
400
            order.doRead(order.previous);
387
            
401
            
388
            map.put (folder, new SoftReference (order));
402
            map.put (folder, new SoftReference (order));
389
        }
403
        }

Return to bug 15378