Changeset 8318 in josm


Ignore:
Timestamp:
2015-05-03T18:34:33+02:00 (5 years ago)
Author:
Don-vip
Message:

fix various Sonar issues:

  • squid:S1068: Unused private fields should be removed
  • squid:S1155: Collection.isEmpty() should be used to test for emptiness
  • squid:S1185: Overriding methods should do more than simply call the same method in the super class
  • squid:S1694: An abstract class should have both abstract and concrete methods
  • squid:S1905: Redundant casts should not be used
  • squid:S2065: Fields in non-serializable classes should not be "transient"
  • squid:S2583: Conditions should not unconditionally evaluate to "TRUE" or to "FALSE"
  • squid:ModifiersOrderCheck: Modifiers should be declared in the correct order
Location:
trunk/src/org/openstreetmap/josm
Files:
36 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java

    r7850 r8318  
    286286                    neighbors.add(nodes.get(i+1));
    287287                }
    288             if(neighbors.size() == 0)
     288            if(neighbors.isEmpty())
    289289                continue;
    290290            else if(neighbors.size() == 2)
  • trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java

    r8308 r8318  
    121121                }
    122122            }
    123             if (tmpNodes.size() < 1) {
     123            if (tmpNodes.isEmpty()) {
    124124                if (selection.size() > 1) {
    125125                    errMsg =  tr("None of these nodes are glued to anything else.");
     
    262262     */
    263263    private boolean checkSelection2(Collection<? extends OsmPrimitive> selection) {
    264         if (selection.size() < 1)
     264        if (selection.isEmpty())
    265265            return false;
    266266
     
    286286        }
    287287
    288         if (selectedNodes.size() < 1) {
     288        if (selectedNodes.isEmpty()) {
    289289            selectedNodes.addAll(selectedWay.getNodes());
    290290        }
  • trunk/src/org/openstreetmap/josm/actions/UploadNotesAction.java

    r7937 r8318  
    3636        }
    3737        NoteLayer layer;
    38         if (noteLayers != null && noteLayers.size() > 0) {
     38        if (noteLayers != null && !noteLayers.isEmpty()) {
    3939            layer = noteLayers.get(0);
    4040        } else {
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java

    r8218 r8318  
    114114            }
    115115            NoteLayer layer;
    116             if (noteLayers != null && noteLayers.size() > 0) {
     116            if (noteLayers != null && !noteLayers.isEmpty()) {
    117117                layer = noteLayers.get(0);
    118118                layer.getNoteData().addNotes(notesData);
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesUrlIdTask.java

    r8240 r8318  
    22package org.openstreetmap.josm.actions.downloadtasks;
    33
    4 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     4import static org.openstreetmap.josm.tools.I18n.tr;
    55
    66import java.util.concurrent.Future;
     
    88import java.util.regex.Pattern;
    99
    10 import static org.openstreetmap.josm.tools.I18n.tr;
     10import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    1111
    1212public class DownloadNotesUrlIdTask extends DownloadNotesTask {
     
    2929    }
    3030
    31     public boolean acceptsUrl(String url) {
    32         return super.acceptsUrl(url);
    33     }
    34 
    3531    @Override
    3632    public String getTitle() {
  • trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java

    r8308 r8318  
    612612            startImproving(wayList.get(0));
    613613            return;
    614         } else if (nodeList.size() > 0) {
     614        } else if (nodeList.size() == 1) {
    615615            // Starting improving the only way of the single selected node
    616             if (nodeList.size() == 1) {
    617                 List<OsmPrimitive> r = nodeList.get(0).getReferrers();
    618                 if (r.size() == 1 && (r.get(0) instanceof Way)) {
    619                     startImproving((Way) r.get(0));
    620                     return;
    621                 }
     616            List<OsmPrimitive> r = nodeList.get(0).getReferrers();
     617            if (r.size() == 1 && (r.get(0) instanceof Way)) {
     618                startImproving((Way) r.get(0));
     619                return;
    622620            }
    623621        }
  • trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    r8308 r8318  
    519519            // highlight it and adjust the cursor accordingly.
    520520            final boolean canMerge = ctrl && !getCurrentDataSet().getSelectedNodes().isEmpty();
    521             final OsmPrimitive p = canMerge ? (OsmPrimitive)findNodeToMergeTo(e.getPoint()) : null;
     521            final OsmPrimitive p = canMerge ? findNodeToMergeTo(e.getPoint()) : null;
    522522            boolean needsRepaint = removeHighlighting();
    523523            if(p != null) {
  • trunk/src/org/openstreetmap/josm/data/cache/CacheEntryAttributes.java

    r8313 r8318  
    1111 *
    1212 * @author Wiktor Niesiobędzki
    13  *
     13 * @since 8168
    1414 */
    1515public class CacheEntryAttributes extends ElementAttributes {
    1616    private static final long serialVersionUID = 1L; //version
    17     private Map<String, String> attrs = new HashMap<String, String>();
    18     private final static String NO_TILE_AT_ZOOM = "noTileAtZoom";
    19     private final static String ETAG = "Etag";
    20     private final static String LAST_MODIFICATION = "lastModification";
    21     private final static String EXPIRATION_TIME = "expirationTime";
     17    private final Map<String, String> attrs = new HashMap<String, String>();
     18    private static final String NO_TILE_AT_ZOOM = "noTileAtZoom";
     19    private static final String ETAG = "Etag";
     20    private static final String LAST_MODIFICATION = "lastModification";
     21    private static final String EXPIRATION_TIME = "expirationTime";
    2222
    2323    /**
  • trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java

    r8291 r8318  
    2727import org.openstreetmap.josm.data.preferences.IntegerProperty;
    2828
    29 
    3029/**
    3130 * @author Wiktor Niesiobędzki
     
    3332 * Wrapper class for JCS Cache. Sets some sane environment and returns instances of cache objects.
    3433 * Static configuration for now assumes some small LRU cache in memory and larger LRU cache on disk
    35  *
     34 * @since 8168
    3635 */
    3736public class JCSCacheManager {
     
    4039    private static volatile CompositeCacheManager cacheManager = null;
    4140    private static long maxObjectTTL        = Long.MAX_VALUE;
    42     private final static String PREFERENCE_PREFIX = "jcs.cache";
    43     private final static IndexedDiskCacheFactory diskCacheFactory = new IndexedDiskCacheFactory();
     41    private static final String PREFERENCE_PREFIX = "jcs.cache";
     42    private static final IndexedDiskCacheFactory diskCacheFactory = new IndexedDiskCacheFactory();
    4443    private static FileLock cacheDirLock = null;
    4544
  • trunk/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java

    r8314 r8318  
    4343 * This class will keep only one Job running for specified tile. All others will just finish, but
    4444 * listeners will be gathered and notified, once download job will be finished
     45 *
     46 * @since 8168
    4547 */
    4648public abstract class JCSCachedTileLoaderJob<K, V extends CacheEntry> implements ICachedLoaderJob<K>, Runnable {
     
    5658     * maximum download threads that will be started
    5759     */
    58     public final static IntegerProperty THREAD_LIMIT = new IntegerProperty("cache.jcs.max_threads", 10);
     60    public static final IntegerProperty THREAD_LIMIT = new IntegerProperty("cache.jcs.max_threads", 10);
    5961
    6062    public static class LIFOQueue extends LinkedBlockingDeque<Runnable> {
  • trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java

    r8314 r8318  
    3232 *
    3333 * Class bridging TMS requests to JCS cache requests
    34  *
     34 * @since 8168
    3535 */
    3636public class TMSCachedTileLoaderJob extends JCSCachedTileLoaderJob<String, BufferedImageCacheEntry> implements TileJob, ICachedLoaderListener  {
     
    4343     * Limit definition for per host concurrent connections
    4444     */
    45     public final static IntegerProperty HOST_LIMIT = new IntegerProperty("imagery.tms.tmsloader.maxjobsperhost", 6);
     45    public static final IntegerProperty HOST_LIMIT = new IntegerProperty("imagery.tms.tmsloader.maxjobsperhost", 6);
    4646
    4747     /*
     
    7777        }
    7878        return ret;
    79 
    8079    }
    8180
     
    8786    }
    8887
    89 
    9088    private static Map<String, Semaphore> HOST_LIMITS = new ConcurrentHashMap<>();
    9189
     
    9391     * overrides the THREAD_LIMIT in superclass, as we want to have separate limit and pool for TMS
    9492     */
    95     public final static IntegerProperty THREAD_LIMIT = new IntegerProperty("imagery.tms.tmsloader.maxjobs", 25);
     93    public static final IntegerProperty THREAD_LIMIT = new IntegerProperty("imagery.tms.tmsloader.maxjobs", 25);
    9694
    9795    /**
  • trunk/src/org/openstreetmap/josm/data/osm/QuadBuckets.java

    r8285 r8318  
    575575    @Override
    576576    public boolean isEmpty() {
    577         if (this.size() == 0)
    578             return true;
    579         return false;
     577        return size == 0;
    580578    }
    581579
     
    583581        List<T> ret = new ArrayList<>();
    584582        // Doing this cuts down search cost on a real-life data set by about 25%
    585         boolean cache_searches = true;
    586         if (cache_searches) {
    587             if (search_cache == null) {
    588                 search_cache = root;
    589             }
    590             // Walk back up the tree when the last search spot can not cover the current search
    591             while (search_cache != null && !search_cache.bbox().bounds(search_bbox)) {
    592                 search_cache = search_cache.parent;
    593             }
    594 
    595             if (search_cache == null) {
    596                 search_cache = root;
    597                 Main.info("bbox: " + search_bbox + " is out of the world");
    598             }
    599         } else {
     583        if (search_cache == null) {
    600584            search_cache = root;
     585        }
     586        // Walk back up the tree when the last search spot can not cover the current search
     587        while (search_cache != null && !search_cache.bbox().bounds(search_bbox)) {
     588            search_cache = search_cache.parent;
     589        }
     590
     591        if (search_cache == null) {
     592            search_cache = root;
     593            Main.info("bbox: " + search_bbox + " is out of the world");
    601594        }
    602595
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java

    r8291 r8318  
    15991599
    16001600        private final List<StyleRecord> allStyleElems;
    1601         private final DataSet data;
    1602 
    1603         public ConcurrentTasksHelper(List<StyleRecord> allStyleElems, DataSet data) {
     1601
     1602        public ConcurrentTasksHelper(List<StyleRecord> allStyleElems) {
    16041603            this.allStyleElems = allStyleElems;
    1605             this.data = data;
    16061604        }
    16071605
     
    16581656            final List<StyleRecord> allStyleElems = new ArrayList<>(nodes.size()+ways.size()+relations.size());
    16591657
    1660             ConcurrentTasksHelper helper = new ConcurrentTasksHelper(allStyleElems, data);
     1658            ConcurrentTasksHelper helper = new ConcurrentTasksHelper(allStyleElems);
    16611659
    16621660            // Need to process all relations first.
  • trunk/src/org/openstreetmap/josm/data/validation/tests/Lanes.java

    r7937 r8318  
    4747                Predicates.stringContainsPattern(Pattern.compile(":" + lanesKey + "$"))));
    4848        keysForPattern.removeAll(Arrays.asList(BLACKLIST));
    49         if (keysForPattern.size() < 1) {
     49        if (keysForPattern.isEmpty()) {
    5050            // nothing to check
    5151            return;
  • trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java

    r8285 r8318  
    144144     * Represents a fix to a validation test. The fixing {@link Command} can be obtained by {@link #createCommand(OsmPrimitive, Selector)}.
    145145     */
    146     static abstract class FixCommand {
     146    abstract static class FixCommand {
    147147        /**
    148148         * Creates the fixing {@link Command} for the given primitive. The {@code matchingSelector} is used to
  • trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java

    r8237 r8318  
    129129        if (!w.isArea() && ElemStyles.hasOnlyAreaElemStyle(w)) {
    130130            List<Node> nodes = w.getNodes();
    131             if (nodes.size()<1) return; // fix zero nodes bug
     131            if (nodes.isEmpty()) return; // fix zero nodes bug
    132132            for (String key : keysCheckedByAnotherTest) {
    133133                if (w.hasKey(key)) {
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r8308 r8318  
    10161016
    10171017            List<JMenuItem> searchResult = mainMenu.findMenuItems(currentSearchText);
    1018             if(searchResult.size() == 0) {
     1018            if(searchResult.isEmpty()) {
    10191019                // Nothing found
    10201020                hideMenu();
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r8308 r8318  
    4848import org.openstreetmap.josm.data.osm.DataSet;
    4949import org.openstreetmap.josm.data.osm.OsmPrimitive;
    50 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    5150import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
    5251import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
     
    700699
    701700    /**
    702      * Set the new dimension to the view.
    703      *
    704      * @deprecated use #zoomTo(BoundingXYVisitor)
    705      */
    706     @Deprecated
    707     public void recalculateCenterScale(BoundingXYVisitor box) {
    708         zoomTo(box);
    709     }
    710 
    711     /**
    712701     * @return An unmodifiable collection of all layers
    713702     */
     
    733722     * @return an unmodifiable list of layers of a certain type.
    734723     */
    735     public <T extends Layer> List<T>  getLayersOfType(Class<T> ofType) {
     724    public <T extends Layer> List<T> getLayersOfType(Class<T> ofType) {
    736725        return new ArrayList<>(Utils.filteredCollection(getAllLayers(), ofType));
    737726    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java

    r8308 r8318  
    101101        buildDialog();
    102102        MapView.addLayerChangeListener(this);
    103     }
    104 
    105     @Override
    106     public void showDialog() {
    107         super.showDialog();
    108103    }
    109104
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r8308 r8318  
    580580
    581581        public void updateTitle() {
    582             if (relations.size() > 0 && relations.size() != getSize()) {
     582            if (!relations.isEmpty() && relations.size() != getSize()) {
    583583                RelationListDialog.this.setTitle(tr("Relations: {0}/{1}", getSize(), relations.size()));
    584584            } else if (getSize() > 0) {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    r8308 r8318  
    282282            return false;
    283283        Arrays.sort(rows);
    284         return rows[0] > 0 && members.size() > 0;
     284        return rows[0] > 0 && !members.isEmpty();
    285285    }
    286286
     
    289289            return false;
    290290        Arrays.sort(rows);
    291         return members.size() > 0 && rows[rows.length - 1] < members.size() - 1;
     291        return !members.isEmpty() && rows[rows.length - 1] < members.size() - 1;
    292292    }
    293293
  • trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java

    r8308 r8318  
    328328        private String searchExpression;
    329329        private HttpURLConnection connection;
    330         private transient List<SearchResult> data;
     330        private List<SearchResult> data;
    331331        private boolean canceled = false;
    332332        private Server useserver;
  • trunk/src/org/openstreetmap/josm/gui/help/HelpBrowserHistory.java

    r7005 r8318  
    5757        } else if (historyPos == history.size() -1) {
    5858            // do nothing just append
    59         } else if (historyPos ==0 && history.size() > 0) {
     59        } else if (historyPos ==0 && !history.isEmpty()) {
    6060            history = new ArrayList<>(Collections.singletonList(history.get(0)));
    6161        } else if (historyPos < history.size() -1 && historyPos > 0) {
  • trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java

    r8285 r8318  
    109109                    referenceDiff.add(new Item(DiffItemType.EMPTY, null));
    110110                    currentDiff.add(new Item(DiffItemType.INSERTED, b[ib++]));
    111                 } else if(deleted > 0) {
     111                } else {
    112112                    referenceDiff.add(new Item(DiffItemType.DELETED, a[ia++]));
    113113                    currentDiff.add(new Item(DiffItemType.EMPTY, null));
  • trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java

    r8308 r8318  
    9393    }
    9494
    95     static public List<String> getDefaultSources() {
     95    public static List<String> getDefaultSources() {
    9696        return Arrays.asList("knowledge", "survey", "Bing");
    9797    }
  • trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java

    r8291 r8318  
    13241324                continue;
    13251325            }
    1326             if (missedTiles.size() <= 0) {
     1326            if (missedTiles.isEmpty()) {
    13271327                break;
    13281328            }
     
    13511351            missedTiles = newlyMissedTiles;
    13521352        }
    1353         if (Main.isDebugEnabled() && missedTiles.size() > 0) {
     1353        if (Main.isDebugEnabled() && !missedTiles.isEmpty()) {
    13541354            Main.debug("still missed "+missedTiles.size()+" in the end");
    13551355        }
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java

    r8308 r8318  
    999999
    10001000            // no images found, exit
    1001             if(imgs.size() <= 0) {
     1001            if(imgs.isEmpty()) {
    10021002                JOptionPane.showMessageDialog(Main.parent,
    10031003                        tr("The selected photos do not contain time information."),
     
    12071207        // before the first point will be geotagged with the starting point
    12081208        if (prevWpTime == 0 || curWpTime <= prevWpTime) {
    1209             while (true) {
    1210                 if (i < 0) {
    1211                     break;
    1212                 }
     1209            while (i >= 0) {
    12131210                final ImageEntry curImg = images.get(i);
    12141211                long time = curImg.getExifTime().getTime();
     
    12311228        // This code gives a simple linear interpolation of the coordinates between current and
    12321229        // previous track point assuming a constant speed in between
    1233         while (true) {
    1234             if (i < 0) {
    1235                 break;
    1236             }
     1230        while (i >= 0) {
    12371231            ImageEntry curImg = images.get(i);
    12381232            long imgTime = curImg.getExifTime().getTime();
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java

    r8285 r8318  
    713713
    714714    public void showNextPhoto() {
    715         if (data != null && data.size() > 0) {
     715        if (data != null && !data.isEmpty()) {
    716716            currentPhoto++;
    717717            if (currentPhoto >= data.size()) {
     
    739739
    740740    public void showFirstPhoto() {
    741         if (data != null && data.size() > 0) {
     741        if (data != null && !data.isEmpty()) {
    742742            currentPhoto = 0;
    743743            ImageViewerDialog.showImage(this, data.get(currentPhoto));
     
    749749
    750750    public void showLastPhoto() {
    751         if (data != null && data.size() > 0) {
     751        if (data != null && !data.isEmpty()) {
    752752            currentPhoto = data.size() - 1;
    753753            ImageViewerDialog.showImage(this, data.get(currentPhoto));
     
    764764
    765765    public void removeCurrentPhoto() {
    766         if (data != null && data.size() > 0 && currentPhoto >= 0 && currentPhoto < data.size()) {
     766        if (data != null && !data.isEmpty() && currentPhoto >= 0 && currentPhoto < data.size()) {
    767767            data.remove(currentPhoto);
    768768            if (currentPhoto >= data.size()) {
     
    781781    public void removeCurrentPhotoFromDisk() {
    782782        ImageEntry toDelete = null;
    783         if (data != null && data.size() > 0 && currentPhoto >= 0 && currentPhoto < data.size()) {
     783        if (data != null && !data.isEmpty() && currentPhoto >= 0 && currentPhoto < data.size()) {
    784784            toDelete = data.get(currentPhoto);
    785785
     
    828828    public void copyCurrentPhotoPath() {
    829829        ImageEntry toCopy = null;
    830         if (data != null && data.size() > 0 && currentPhoto >= 0 && currentPhoto < data.size()) {
     830        if (data != null && !data.isEmpty() && currentPhoto >= 0 && currentPhoto < data.size()) {
    831831            toCopy = data.get(currentPhoto);
    832832            String copyString = toCopy.getFile().toString();
  • trunk/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java

    r7864 r8318  
    209209
    210210    public void consistencyTest() {
    211         if (bd.size() < 2) throw new AssertionError();
    212         if (data.size() < 1) throw new AssertionError();
     211        if (bd.size() < 2) throw new AssertionError(bd);
     212        if (data.isEmpty()) throw new AssertionError(data);
    213213        if (bd.size() != data.size() + 1) throw new AssertionError();
    214214        if (bd.get(0) != 0) throw new AssertionError();
  • trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java

    r8297 r8318  
    175175         * @author Michael Zangl
    176176         */
    177         private final static class MapCSSKeyRules {
     177        private static final class MapCSSKeyRules {
    178178            /**
    179179             * The indexes of rules that might be applied if this tag is present and the value has no special handling.
  • trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java

    r8308 r8318  
    12401240    class SourceLoader extends PleaseWaitRunnable {
    12411241        private final String url;
    1242         private final transient List<SourceProvider> sourceProviders;
     1242        private final List<SourceProvider> sourceProviders;
    12431243        private BufferedReader reader;
    12441244        private boolean canceled;
  • trunk/src/org/openstreetmap/josm/gui/preferences/projection/ListProjectionChoice.java

    r7937 r8318  
    6464    public void setPreferences(Collection<String> args) {
    6565        String zone = null;
    66         if (args != null && args.size() >= 1) {
     66        if (args != null && !args.isEmpty()) {
    6767            zone = args.iterator().next();
    6868        }
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    r8308 r8318  
    419419        }
    420420
    421         if (cmds.size() == 0)
     421        if (cmds.isEmpty())
    422422            return null;
    423423        else if (cmds.size() == 1)
  • trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitPane.java

    r8308 r8318  
    145145     * @see #setDividerPainter
    146146     */
    147     public abstract static class DividerPainter {
     147    public interface DividerPainter {
    148148        /**
    149149         * Paint a single Divider.
     
    155155    }
    156156
    157     private class DefaultDividerPainter extends DividerPainter {
     157    private class DefaultDividerPainter implements DividerPainter {
    158158        @Override
    159159        public void paint(Graphics g, Divider divider) {
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java

    r8221 r8318  
    6060        String msg = tr("Remote Control has been asked to load data from the API.") +
    6161                "<br>" + tr("Bounding box: ") + new BBox(minlon, minlat, maxlon, maxlat).toStringCSV(", ");
    62         if (args.containsKey("select") && toSelect.size() > 0) {
     62        if (args.containsKey("select") && !toSelect.isEmpty()) {
    6363            msg += "<br>" + tr("Selection: {0}", toSelect.size());
    6464        }
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java

    r8304 r8318  
    313313    }
    314314
    315     public static abstract class RawURLParseRequestHandler extends RequestHandler {
     315    public abstract static class RawURLParseRequestHandler extends RequestHandler {
    316316        @Override
    317317        protected void parseArgs() {
Note: See TracChangeset for help on using the changeset viewer.