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

(-)java/org/apache/catalina/servlets/WebdavServlet.java (-114 / +114 lines)
Lines 512-518 Link Here
512
512
513
        if (type == FIND_BY_PROPERTY) {
513
        if (type == FIND_BY_PROPERTY) {
514
            properties = new Vector<String>();
514
            properties = new Vector<String>();
515
            // propNode must be non-null if type == FIND_BY_PROPERTY 
515
            // propNode must be non-null if type == FIND_BY_PROPERTY
516
            @SuppressWarnings("null")
516
            @SuppressWarnings("null")
517
            NodeList childList = propNode.getChildNodes();
517
            NodeList childList = propNode.getChildNodes();
518
518
Lines 563-575 Link Here
563
                                new XMLWriter(resp.getWriter());
563
                                new XMLWriter(resp.getWriter());
564
                            generatedXML.writeXMLHeader();
564
                            generatedXML.writeXMLHeader();
565
                            generatedXML.writeElement
565
                            generatedXML.writeElement
566
                                (null, "multistatus"
566
                                (null, "D:multistatus"
567
                                 + generateNamespaceDeclarations(),
567
                                 + generateNamespaceDeclarations(),
568
                                 XMLWriter.OPENING);
568
                                 XMLWriter.OPENING);
569
                            parseLockNullProperties
569
                            parseLockNullProperties
570
                                (req, generatedXML, lockNullPath, type,
570
                                (req, generatedXML, lockNullPath, type,
571
                                 properties);
571
                                 properties);
572
                            generatedXML.writeElement(null, "multistatus",
572
                            generatedXML.writeElement(null, "D:multistatus",
573
                                                      XMLWriter.CLOSING);
573
                                                      XMLWriter.CLOSING);
574
                            generatedXML.sendData();
574
                            generatedXML.sendData();
575
                            return;
575
                            return;
Lines 592-598 Link Here
592
        XMLWriter generatedXML = new XMLWriter(resp.getWriter());
592
        XMLWriter generatedXML = new XMLWriter(resp.getWriter());
593
        generatedXML.writeXMLHeader();
593
        generatedXML.writeXMLHeader();
594
594
595
        generatedXML.writeElement(null, "multistatus"
595
        generatedXML.writeElement(null, "D:multistatus"
596
                                  + generateNamespaceDeclarations(),
596
                                  + generateNamespaceDeclarations(),
597
                                  XMLWriter.OPENING);
597
                                  XMLWriter.OPENING);
598
598
Lines 672-678 Link Here
672
            }
672
            }
673
        }
673
        }
674
674
675
        generatedXML.writeElement(null, "multistatus",
675
        generatedXML.writeElement(null, "D:multistatus",
676
                                  XMLWriter.CLOSING);
676
                                  XMLWriter.CLOSING);
677
677
678
        generatedXML.sendData();
678
        generatedXML.sendData();
Lines 1157-1163 Link Here
1157
                    generatedXML.writeXMLHeader();
1157
                    generatedXML.writeXMLHeader();
1158
1158
1159
                    generatedXML.writeElement
1159
                    generatedXML.writeElement
1160
                        (null, "multistatus" + generateNamespaceDeclarations(),
1160
                        (null, "D:multistatus" + generateNamespaceDeclarations(),
1161
                         XMLWriter.OPENING);
1161
                         XMLWriter.OPENING);
1162
1162
1163
                    while (lockPathsList.hasMoreElements()) {
1163
                    while (lockPathsList.hasMoreElements()) {
Lines 1328-1346 Link Here
1328
        // the lock information
1328
        // the lock information
1329
        XMLWriter generatedXML = new XMLWriter();
1329
        XMLWriter generatedXML = new XMLWriter();
1330
        generatedXML.writeXMLHeader();
1330
        generatedXML.writeXMLHeader();
1331
        generatedXML.writeElement(null, "prop"
1331
        generatedXML.writeElement(null, "D:prop"
1332
                                  + generateNamespaceDeclarations(),
1332
                                  + generateNamespaceDeclarations(),
1333
                                  XMLWriter.OPENING);
1333
                                  XMLWriter.OPENING);
1334
1334
1335
        generatedXML.writeElement(null, "lockdiscovery",
1335
        generatedXML.writeElement(null, "D:lockdiscovery",
1336
                                  XMLWriter.OPENING);
1336
                                  XMLWriter.OPENING);
1337
1337
1338
        lock.toXML(generatedXML);
1338
        lock.toXML(generatedXML);
1339
1339
1340
        generatedXML.writeElement(null, "lockdiscovery",
1340
        generatedXML.writeElement(null, "D:lockdiscovery",
1341
                                  XMLWriter.CLOSING);
1341
                                  XMLWriter.CLOSING);
1342
1342
1343
        generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
1343
        generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
1344
1344
1345
        resp.setStatus(WebdavStatus.SC_OK);
1345
        resp.setStatus(WebdavStatus.SC_OK);
1346
        resp.setContentType("text/xml; charset=UTF-8");
1346
        resp.setContentType("text/xml; charset=UTF-8");
Lines 1432-1438 Link Here
1432
     * Generate the namespace declarations.
1432
     * Generate the namespace declarations.
1433
     */
1433
     */
1434
    private String generateNamespaceDeclarations() {
1434
    private String generateNamespaceDeclarations() {
1435
        return " xmlns=\"" + DEFAULT_NAMESPACE + "\"";
1435
        return " xmlns:D=\"" + DEFAULT_NAMESPACE + "\"";
1436
    }
1436
    }
1437
1437
1438
1438
Lines 2046-2058 Link Here
2046
        	return;
2046
        	return;
2047
        }
2047
        }
2048
2048
2049
        generatedXML.writeElement(null, "response", XMLWriter.OPENING);
2049
        generatedXML.writeElement(null, "D:response", XMLWriter.OPENING);
2050
        String status = new String("HTTP/1.1 " + WebdavStatus.SC_OK + " "
2050
        String status = new String("HTTP/1.1 " + WebdavStatus.SC_OK + " "
2051
                                   + WebdavStatus.getStatusText
2051
                                   + WebdavStatus.getStatusText
2052
                                   (WebdavStatus.SC_OK));
2052
                                   (WebdavStatus.SC_OK));
2053
2053
2054
        // Generating href element
2054
        // Generating href element
2055
        generatedXML.writeElement(null, "href", XMLWriter.OPENING);
2055
        generatedXML.writeElement(null, "D:href", XMLWriter.OPENING);
2056
2056
2057
        String href = req.getContextPath() + req.getServletPath();
2057
        String href = req.getContextPath() + req.getServletPath();
2058
        if ((href.endsWith("/")) && (path.startsWith("/")))
2058
        if ((href.endsWith("/")) && (path.startsWith("/")))
Lines 2064-2070 Link Here
2064
2064
2065
        generatedXML.writeText(rewriteUrl(href));
2065
        generatedXML.writeText(rewriteUrl(href));
2066
2066
2067
        generatedXML.writeElement(null, "href", XMLWriter.CLOSING);
2067
        generatedXML.writeElement(null, "D:href", XMLWriter.CLOSING);
2068
2068
2069
        String resourceName = path;
2069
        String resourceName = path;
2070
        int lastSlash = path.lastIndexOf('/');
2070
        int lastSlash = path.lastIndexOf('/');
Lines 2075-2172 Link Here
2075
2075
2076
        case FIND_ALL_PROP :
2076
        case FIND_ALL_PROP :
2077
2077
2078
            generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
2078
            generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
2079
            generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
2079
            generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
2080
2080
2081
            generatedXML.writeProperty
2081
            generatedXML.writeProperty
2082
                (null, "creationdate",
2082
                (null, "D:creationdate",
2083
                 getISOCreationDate(cacheEntry.attributes.getCreation()));
2083
                 getISOCreationDate(cacheEntry.attributes.getCreation()));
2084
            generatedXML.writeElement(null, "displayname", XMLWriter.OPENING);
2084
            generatedXML.writeElement(null, "D:displayname", XMLWriter.OPENING);
2085
            generatedXML.writeData(resourceName);
2085
            generatedXML.writeData(resourceName);
2086
            generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING);
2086
            generatedXML.writeElement(null, "D:displayname", XMLWriter.CLOSING);
2087
            if (cacheEntry.resource != null) {
2087
            if (cacheEntry.resource != null) {
2088
                generatedXML.writeProperty
2088
                generatedXML.writeProperty
2089
                    (null, "getlastmodified", FastHttpDateFormat.formatDate
2089
                    (null, "D:getlastmodified", FastHttpDateFormat.formatDate
2090
                           (cacheEntry.attributes.getLastModified(), null));
2090
                           (cacheEntry.attributes.getLastModified(), null));
2091
                generatedXML.writeProperty
2091
                generatedXML.writeProperty
2092
                    (null, "getcontentlength",
2092
                    (null, "D:getcontentlength",
2093
                     String.valueOf(cacheEntry.attributes.getContentLength()));
2093
                     String.valueOf(cacheEntry.attributes.getContentLength()));
2094
                String contentType = getServletContext().getMimeType
2094
                String contentType = getServletContext().getMimeType
2095
                    (cacheEntry.name);
2095
                    (cacheEntry.name);
2096
                if (contentType != null) {
2096
                if (contentType != null) {
2097
                    generatedXML.writeProperty(null, "getcontenttype",
2097
                    generatedXML.writeProperty(null, "D:getcontenttype",
2098
                                               contentType);
2098
                                               contentType);
2099
                }
2099
                }
2100
                generatedXML.writeProperty(null, "getetag",
2100
                generatedXML.writeProperty(null, "D:getetag",
2101
                                           cacheEntry.attributes.getETag());
2101
                                           cacheEntry.attributes.getETag());
2102
                generatedXML.writeElement(null, "resourcetype",
2102
                generatedXML.writeElement(null, "D:resourcetype",
2103
                                          XMLWriter.NO_CONTENT);
2103
                                          XMLWriter.NO_CONTENT);
2104
            } else {
2104
            } else {
2105
                generatedXML.writeElement(null, "resourcetype",
2105
                generatedXML.writeElement(null, "D:resourcetype",
2106
                                          XMLWriter.OPENING);
2106
                                          XMLWriter.OPENING);
2107
                generatedXML.writeElement(null, "collection",
2107
                generatedXML.writeElement(null, "D:collection",
2108
                                          XMLWriter.NO_CONTENT);
2108
                                          XMLWriter.NO_CONTENT);
2109
                generatedXML.writeElement(null, "resourcetype",
2109
                generatedXML.writeElement(null, "D:resourcetype",
2110
                                          XMLWriter.CLOSING);
2110
                                          XMLWriter.CLOSING);
2111
            }
2111
            }
2112
2112
2113
            generatedXML.writeProperty(null, "source", "");
2113
            generatedXML.writeProperty(null, "D:source", "");
2114
2114
2115
            String supportedLocks = "<lockentry>"
2115
            String supportedLocks = "<D:lockentry>"
2116
                + "<lockscope><exclusive/></lockscope>"
2116
                + "<D:lockscope><D:exclusive/></D:lockscope>"
2117
                + "<locktype><write/></locktype>"
2117
                + "<D:locktype><D:write/></D:locktype>"
2118
                + "</lockentry>" + "<lockentry>"
2118
                + "</D:lockentry>" + "<D:lockentry>"
2119
                + "<lockscope><shared/></lockscope>"
2119
                + "<D:lockscope><D:shared/></D:lockscope>"
2120
                + "<locktype><write/></locktype>"
2120
                + "<D:locktype><D:write/></D:locktype>"
2121
                + "</lockentry>";
2121
                + "</D:lockentry>";
2122
            generatedXML.writeElement(null, "supportedlock",
2122
            generatedXML.writeElement(null, "D:supportedlock",
2123
                                      XMLWriter.OPENING);
2123
                                      XMLWriter.OPENING);
2124
            generatedXML.writeText(supportedLocks);
2124
            generatedXML.writeText(supportedLocks);
2125
            generatedXML.writeElement(null, "supportedlock",
2125
            generatedXML.writeElement(null, "D:supportedlock",
2126
                                      XMLWriter.CLOSING);
2126
                                      XMLWriter.CLOSING);
2127
2127
2128
            generateLockDiscovery(path, generatedXML);
2128
            generateLockDiscovery(path, generatedXML);
2129
2129
2130
            generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
2130
            generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
2131
            generatedXML.writeElement(null, "status", XMLWriter.OPENING);
2131
            generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
2132
            generatedXML.writeText(status);
2132
            generatedXML.writeText(status);
2133
            generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
2133
            generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
2134
            generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
2134
            generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
2135
2135
2136
            break;
2136
            break;
2137
2137
2138
        case FIND_PROPERTY_NAMES :
2138
        case FIND_PROPERTY_NAMES :
2139
2139
2140
            generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
2140
            generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
2141
            generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
2141
            generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
2142
2142
2143
            generatedXML.writeElement(null, "creationdate",
2143
            generatedXML.writeElement(null, "D:creationdate",
2144
                                      XMLWriter.NO_CONTENT);
2144
                                      XMLWriter.NO_CONTENT);
2145
            generatedXML.writeElement(null, "displayname",
2145
            generatedXML.writeElement(null, "D:displayname",
2146
                                      XMLWriter.NO_CONTENT);
2146
                                      XMLWriter.NO_CONTENT);
2147
            if (cacheEntry.resource != null) {
2147
            if (cacheEntry.resource != null) {
2148
                generatedXML.writeElement(null, "getcontentlanguage",
2148
                generatedXML.writeElement(null, "D:getcontentlanguage",
2149
                                          XMLWriter.NO_CONTENT);
2149
                                          XMLWriter.NO_CONTENT);
2150
                generatedXML.writeElement(null, "getcontentlength",
2150
                generatedXML.writeElement(null, "D:getcontentlength",
2151
                                          XMLWriter.NO_CONTENT);
2151
                                          XMLWriter.NO_CONTENT);
2152
                generatedXML.writeElement(null, "getcontenttype",
2152
                generatedXML.writeElement(null, "D:getcontenttype",
2153
                                          XMLWriter.NO_CONTENT);
2153
                                          XMLWriter.NO_CONTENT);
2154
                generatedXML.writeElement(null, "getetag",
2154
                generatedXML.writeElement(null, "D:getetag",
2155
                                          XMLWriter.NO_CONTENT);
2155
                                          XMLWriter.NO_CONTENT);
2156
                generatedXML.writeElement(null, "getlastmodified",
2156
                generatedXML.writeElement(null, "D:getlastmodified",
2157
                                          XMLWriter.NO_CONTENT);
2157
                                          XMLWriter.NO_CONTENT);
2158
            }
2158
            }
2159
            generatedXML.writeElement(null, "resourcetype",
2159
            generatedXML.writeElement(null, "D:resourcetype",
2160
                                      XMLWriter.NO_CONTENT);
2160
                                      XMLWriter.NO_CONTENT);
2161
            generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT);
2161
            generatedXML.writeElement(null, "D:source", XMLWriter.NO_CONTENT);
2162
            generatedXML.writeElement(null, "lockdiscovery",
2162
            generatedXML.writeElement(null, "D:lockdiscovery",
2163
                                      XMLWriter.NO_CONTENT);
2163
                                      XMLWriter.NO_CONTENT);
2164
2164
2165
            generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
2165
            generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
2166
            generatedXML.writeElement(null, "status", XMLWriter.OPENING);
2166
            generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
2167
            generatedXML.writeText(status);
2167
            generatedXML.writeText(status);
2168
            generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
2168
            generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
2169
            generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
2169
            generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
2170
2170
2171
            break;
2171
            break;
2172
2172
Lines 2176-2183 Link Here
2176
2176
2177
            // Parse the list of properties
2177
            // Parse the list of properties
2178
2178
2179
            generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
2179
            generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
2180
            generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
2180
            generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
2181
2181
2182
            Enumeration<String> properties = propertiesVector.elements();
2182
            Enumeration<String> properties = propertiesVector.elements();
2183
2183
Lines 2187-2205 Link Here
2187
2187
2188
                if (property.equals("creationdate")) {
2188
                if (property.equals("creationdate")) {
2189
                    generatedXML.writeProperty
2189
                    generatedXML.writeProperty
2190
                        (null, "creationdate",
2190
                        (null, "D:creationdate",
2191
                         getISOCreationDate(cacheEntry.attributes.getCreation()));
2191
                         getISOCreationDate(cacheEntry.attributes.getCreation()));
2192
                } else if (property.equals("displayname")) {
2192
                } else if (property.equals("displayname")) {
2193
                    generatedXML.writeElement
2193
                    generatedXML.writeElement
2194
                        (null, "displayname", XMLWriter.OPENING);
2194
                        (null, "D:displayname", XMLWriter.OPENING);
2195
                    generatedXML.writeData(resourceName);
2195
                    generatedXML.writeData(resourceName);
2196
                    generatedXML.writeElement
2196
                    generatedXML.writeElement
2197
                        (null, "displayname", XMLWriter.CLOSING);
2197
                        (null, "D:displayname", XMLWriter.CLOSING);
2198
                } else if (property.equals("getcontentlanguage")) {
2198
                } else if (property.equals("getcontentlanguage")) {
2199
                    if (cacheEntry.context != null) {
2199
                    if (cacheEntry.context != null) {
2200
                        propertiesNotFound.addElement(property);
2200
                        propertiesNotFound.addElement(property);
2201
                    } else {
2201
                    } else {
2202
                        generatedXML.writeElement(null, "getcontentlanguage",
2202
                        generatedXML.writeElement(null, "D:getcontentlanguage",
2203
                                                  XMLWriter.NO_CONTENT);
2203
                                                  XMLWriter.NO_CONTENT);
2204
                    }
2204
                    }
2205
                } else if (property.equals("getcontentlength")) {
2205
                } else if (property.equals("getcontentlength")) {
Lines 2207-2213 Link Here
2207
                        propertiesNotFound.addElement(property);
2207
                        propertiesNotFound.addElement(property);
2208
                    } else {
2208
                    } else {
2209
                        generatedXML.writeProperty
2209
                        generatedXML.writeProperty
2210
                            (null, "getcontentlength",
2210
                            (null, "D:getcontentlength",
2211
                             (String.valueOf(cacheEntry.attributes.getContentLength())));
2211
                             (String.valueOf(cacheEntry.attributes.getContentLength())));
2212
                    }
2212
                    }
2213
                } else if (property.equals("getcontenttype")) {
2213
                } else if (property.equals("getcontenttype")) {
Lines 2215-2221 Link Here
2215
                        propertiesNotFound.addElement(property);
2215
                        propertiesNotFound.addElement(property);
2216
                    } else {
2216
                    } else {
2217
                        generatedXML.writeProperty
2217
                        generatedXML.writeProperty
2218
                            (null, "getcontenttype",
2218
                            (null, "D:getcontenttype",
2219
                             getServletContext().getMimeType
2219
                             getServletContext().getMimeType
2220
                             (cacheEntry.name));
2220
                             (cacheEntry.name));
2221
                    }
2221
                    }
Lines 2224-2265 Link Here
2224
                        propertiesNotFound.addElement(property);
2224
                        propertiesNotFound.addElement(property);
2225
                    } else {
2225
                    } else {
2226
                        generatedXML.writeProperty
2226
                        generatedXML.writeProperty
2227
                            (null, "getetag", cacheEntry.attributes.getETag());
2227
                            (null, "D:getetag", cacheEntry.attributes.getETag());
2228
                    }
2228
                    }
2229
                } else if (property.equals("getlastmodified")) {
2229
                } else if (property.equals("getlastmodified")) {
2230
                    if (cacheEntry.context != null) {
2230
                    if (cacheEntry.context != null) {
2231
                        propertiesNotFound.addElement(property);
2231
                        propertiesNotFound.addElement(property);
2232
                    } else {
2232
                    } else {
2233
                        generatedXML.writeProperty
2233
                        generatedXML.writeProperty
2234
                            (null, "getlastmodified", FastHttpDateFormat.formatDate
2234
                            (null, "D:getlastmodified", FastHttpDateFormat.formatDate
2235
                                    (cacheEntry.attributes.getLastModified(), null));
2235
                                    (cacheEntry.attributes.getLastModified(), null));
2236
                    }
2236
                    }
2237
                } else if (property.equals("resourcetype")) {
2237
                } else if (property.equals("resourcetype")) {
2238
                    if (cacheEntry.context != null) {
2238
                    if (cacheEntry.context != null) {
2239
                        generatedXML.writeElement(null, "resourcetype",
2239
                        generatedXML.writeElement(null, "D:resourcetype",
2240
                                                  XMLWriter.OPENING);
2240
                                                  XMLWriter.OPENING);
2241
                        generatedXML.writeElement(null, "collection",
2241
                        generatedXML.writeElement(null, "D:collection",
2242
                                                  XMLWriter.NO_CONTENT);
2242
                                                  XMLWriter.NO_CONTENT);
2243
                        generatedXML.writeElement(null, "resourcetype",
2243
                        generatedXML.writeElement(null, "D:resourcetype",
2244
                                                  XMLWriter.CLOSING);
2244
                                                  XMLWriter.CLOSING);
2245
                    } else {
2245
                    } else {
2246
                        generatedXML.writeElement(null, "resourcetype",
2246
                        generatedXML.writeElement(null, "D:resourcetype",
2247
                                                  XMLWriter.NO_CONTENT);
2247
                                                  XMLWriter.NO_CONTENT);
2248
                    }
2248
                    }
2249
                } else if (property.equals("source")) {
2249
                } else if (property.equals("source")) {
2250
                    generatedXML.writeProperty(null, "source", "");
2250
                    generatedXML.writeProperty(null, "D:source", "");
2251
                } else if (property.equals("supportedlock")) {
2251
                } else if (property.equals("supportedlock")) {
2252
                    supportedLocks = "<lockentry>"
2252
                    supportedLocks = "<D:lockentry>"
2253
                        + "<lockscope><exclusive/></lockscope>"
2253
                        + "<D:lockscope><D:exclusive/></D:lockscope>"
2254
                        + "<locktype><write/></locktype>"
2254
                        + "<D:locktype><D:write/></D:locktype>"
2255
                        + "</lockentry>" + "<lockentry>"
2255
                        + "</D:lockentry>" + "<D:lockentry>"
2256
                        + "<lockscope><shared/></lockscope>"
2256
                        + "<D:lockscope><D:shared/></D:lockscope>"
2257
                        + "<locktype><write/></locktype>"
2257
                        + "<D:locktype><D:write/></D:locktype>"
2258
                        + "</lockentry>";
2258
                        + "</D:lockentry>";
2259
                    generatedXML.writeElement(null, "supportedlock",
2259
                    generatedXML.writeElement(null, "D:supportedlock",
2260
                                              XMLWriter.OPENING);
2260
                                              XMLWriter.OPENING);
2261
                    generatedXML.writeText(supportedLocks);
2261
                    generatedXML.writeText(supportedLocks);
2262
                    generatedXML.writeElement(null, "supportedlock",
2262
                    generatedXML.writeElement(null, "D:supportedlock",
2263
                                              XMLWriter.CLOSING);
2263
                                              XMLWriter.CLOSING);
2264
                } else if (property.equals("lockdiscovery")) {
2264
                } else if (property.equals("lockdiscovery")) {
2265
                    if (!generateLockDiscovery(path, generatedXML))
2265
                    if (!generateLockDiscovery(path, generatedXML))
Lines 2270-2280 Link Here
2270
2270
2271
            }
2271
            }
2272
2272
2273
            generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
2273
            generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
2274
            generatedXML.writeElement(null, "status", XMLWriter.OPENING);
2274
            generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
2275
            generatedXML.writeText(status);
2275
            generatedXML.writeText(status);
2276
            generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
2276
            generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
2277
            generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
2277
            generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
2278
2278
2279
            Enumeration<String> propertiesNotFoundList =
2279
            Enumeration<String> propertiesNotFoundList =
2280
                propertiesNotFound.elements();
2280
                propertiesNotFound.elements();
Lines 2285-2292 Link Here
2285
                                    + " " + WebdavStatus.getStatusText
2285
                                    + " " + WebdavStatus.getStatusText
2286
                                    (WebdavStatus.SC_NOT_FOUND));
2286
                                    (WebdavStatus.SC_NOT_FOUND));
2287
2287
2288
                generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
2288
                generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
2289
                generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
2289
                generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
2290
2290
2291
                while (propertiesNotFoundList.hasMoreElements()) {
2291
                while (propertiesNotFoundList.hasMoreElements()) {
2292
                    generatedXML.writeElement
2292
                    generatedXML.writeElement
Lines 2294-2304 Link Here
2294
                         XMLWriter.NO_CONTENT);
2294
                         XMLWriter.NO_CONTENT);
2295
                }
2295
                }
2296
2296
2297
                generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
2297
                generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
2298
                generatedXML.writeElement(null, "status", XMLWriter.OPENING);
2298
                generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
2299
                generatedXML.writeText(status);
2299
                generatedXML.writeText(status);
2300
                generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
2300
                generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
2301
                generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
2301
                generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
2302
2302
2303
            }
2303
            }
2304
2304
Lines 2306-2312 Link Here
2306
2306
2307
        }
2307
        }
2308
2308
2309
        generatedXML.writeElement(null, "response", XMLWriter.CLOSING);
2309
        generatedXML.writeElement(null, "D:response", XMLWriter.CLOSING);
2310
2310
2311
    }
2311
    }
2312
2312
Lines 2390-2396 Link Here
2390
            generatedXML.writeElement(null, "resourcetype",
2390
            generatedXML.writeElement(null, "resourcetype",
2391
                                      XMLWriter.CLOSING);
2391
                                      XMLWriter.CLOSING);
2392
2392
2393
            generatedXML.writeProperty(null, "source", "");
2393
            generatedXML.writeProperty(null, "D:source", "");
2394
2394
2395
            String supportedLocks = "<lockentry>"
2395
            String supportedLocks = "<lockentry>"
2396
                + "<lockscope><exclusive/></lockscope>"
2396
                + "<lockscope><exclusive/></lockscope>"
Lines 2578-2584 Link Here
2578
2578
2579
        if (resourceLock != null) {
2579
        if (resourceLock != null) {
2580
            wroteStart = true;
2580
            wroteStart = true;
2581
            generatedXML.writeElement(null, "lockdiscovery",
2581
            generatedXML.writeElement(null, "D:lockdiscovery",
2582
                                      XMLWriter.OPENING);
2582
                                      XMLWriter.OPENING);
2583
            resourceLock.toXML(generatedXML);
2583
            resourceLock.toXML(generatedXML);
2584
        }
2584
        }
Lines 2588-2594 Link Here
2588
            if (path.startsWith(currentLock.path)) {
2588
            if (path.startsWith(currentLock.path)) {
2589
                if (!wroteStart) {
2589
                if (!wroteStart) {
2590
                    wroteStart = true;
2590
                    wroteStart = true;
2591
                    generatedXML.writeElement(null, "lockdiscovery",
2591
                    generatedXML.writeElement(null, "D:lockdiscovery",
2592
                                              XMLWriter.OPENING);
2592
                                              XMLWriter.OPENING);
2593
                }
2593
                }
2594
                currentLock.toXML(generatedXML);
2594
                currentLock.toXML(generatedXML);
Lines 2596-2602 Link Here
2596
        }
2596
        }
2597
2597
2598
        if (wroteStart) {
2598
        if (wroteStart) {
2599
            generatedXML.writeElement(null, "lockdiscovery",
2599
            generatedXML.writeElement(null, "D:lockdiscovery",
2600
                                      XMLWriter.CLOSING);
2600
                                      XMLWriter.CLOSING);
2601
        } else {
2601
        } else {
2602
            return false;
2602
            return false;
Lines 2752-2795 Link Here
2752
         */
2752
         */
2753
        public void toXML(XMLWriter generatedXML) {
2753
        public void toXML(XMLWriter generatedXML) {
2754
2754
2755
            generatedXML.writeElement(null, "activelock", XMLWriter.OPENING);
2755
            generatedXML.writeElement(null, "D:activelock", XMLWriter.OPENING);
2756
2756
2757
            generatedXML.writeElement(null, "locktype", XMLWriter.OPENING);
2757
            generatedXML.writeElement(null, "D:locktype", XMLWriter.OPENING);
2758
            generatedXML.writeElement(null, type, XMLWriter.NO_CONTENT);
2758
            generatedXML.writeElement(null, "D:" + type, XMLWriter.NO_CONTENT);
2759
            generatedXML.writeElement(null, "locktype", XMLWriter.CLOSING);
2759
            generatedXML.writeElement(null, "D:locktype", XMLWriter.CLOSING);
2760
2760
2761
            generatedXML.writeElement(null, "lockscope", XMLWriter.OPENING);
2761
            generatedXML.writeElement(null, "D:lockscope", XMLWriter.OPENING);
2762
            generatedXML.writeElement(null, scope, XMLWriter.NO_CONTENT);
2762
            generatedXML.writeElement(null, "D:" + scope, XMLWriter.NO_CONTENT);
2763
            generatedXML.writeElement(null, "lockscope", XMLWriter.CLOSING);
2763
            generatedXML.writeElement(null, "D:lockscope", XMLWriter.CLOSING);
2764
2764
2765
            generatedXML.writeElement(null, "depth", XMLWriter.OPENING);
2765
            generatedXML.writeElement(null, "D:depth", XMLWriter.OPENING);
2766
            if (depth == maxDepth) {
2766
            if (depth == maxDepth) {
2767
                generatedXML.writeText("Infinity");
2767
                generatedXML.writeText("Infinity");
2768
            } else {
2768
            } else {
2769
                generatedXML.writeText("0");
2769
                generatedXML.writeText("0");
2770
            }
2770
            }
2771
            generatedXML.writeElement(null, "depth", XMLWriter.CLOSING);
2771
            generatedXML.writeElement(null, "D:depth", XMLWriter.CLOSING);
2772
2772
2773
            generatedXML.writeElement(null, "owner", XMLWriter.OPENING);
2773
            generatedXML.writeElement(null, "D:owner", XMLWriter.OPENING);
2774
            generatedXML.writeText(owner);
2774
            generatedXML.writeText(owner);
2775
            generatedXML.writeElement(null, "owner", XMLWriter.CLOSING);
2775
            generatedXML.writeElement(null, "D:owner", XMLWriter.CLOSING);
2776
2776
2777
            generatedXML.writeElement(null, "timeout", XMLWriter.OPENING);
2777
            generatedXML.writeElement(null, "D:timeout", XMLWriter.OPENING);
2778
            long timeout = (expiresAt - System.currentTimeMillis()) / 1000;
2778
            long timeout = (expiresAt - System.currentTimeMillis()) / 1000;
2779
            generatedXML.writeText("Second-" + timeout);
2779
            generatedXML.writeText("Second-" + timeout);
2780
            generatedXML.writeElement(null, "timeout", XMLWriter.CLOSING);
2780
            generatedXML.writeElement(null, "D:timeout", XMLWriter.CLOSING);
2781
2781
2782
            generatedXML.writeElement(null, "locktoken", XMLWriter.OPENING);
2782
            generatedXML.writeElement(null, "D:locktoken", XMLWriter.OPENING);
2783
            Enumeration<String> tokensList = tokens.elements();
2783
            Enumeration<String> tokensList = tokens.elements();
2784
            while (tokensList.hasMoreElements()) {
2784
            while (tokensList.hasMoreElements()) {
2785
                generatedXML.writeElement(null, "href", XMLWriter.OPENING);
2785
                generatedXML.writeElement(null, "D:href", XMLWriter.OPENING);
2786
                generatedXML.writeText("opaquelocktoken:"
2786
                generatedXML.writeText("opaquelocktoken:"
2787
                                       + tokensList.nextElement());
2787
                                       + tokensList.nextElement());
2788
                generatedXML.writeElement(null, "href", XMLWriter.CLOSING);
2788
                generatedXML.writeElement(null, "D:href", XMLWriter.CLOSING);
2789
            }
2789
            }
2790
            generatedXML.writeElement(null, "locktoken", XMLWriter.CLOSING);
2790
            generatedXML.writeElement(null, "D:locktoken", XMLWriter.CLOSING);
2791
2791
2792
            generatedXML.writeElement(null, "activelock", XMLWriter.CLOSING);
2792
            generatedXML.writeElement(null, "D:activelock", XMLWriter.CLOSING);
2793
2793
2794
        }
2794
        }
2795
2795

Return to bug 49428