1 19 20 package org.openharmonise.dav.server.managers; 21 22 import java.util.*; 23 import java.util.logging.*; 24 25 import javax.xml.parsers.*; 26 27 import org.openharmonise.commons.xml.namespace.NamespaceType; 28 import org.openharmonise.dav.server.property.domains.DAVDomain; 29 import org.openharmonise.dav.server.property.ranges.DAVRange; 30 import org.openharmonise.dav.server.utils.*; 31 import org.openharmonise.rm.DataAccessException; 32 import org.openharmonise.rm.resources.*; 33 import org.openharmonise.rm.resources.metadata.properties.Property; 34 import org.w3c.dom.*; 35 36 import com.ibm.webdav.*; 37 import com.ibm.webdav.impl.*; 38 39 47 public class VersionedPropertiesManager 48 extends HarmonisePropertiesManager 49 implements com.ibm.webdav.impl.VersionedPropertiesManager { 50 51 public static final String TAG_SUCCESSOR_SET = "successor-set"; 52 public static final String TAG_AUTO_VERSION = "auto-version"; 53 public static final String TAG_LOCKED_CHECKOUT = "locked-checkout"; 54 public static final String TAG_PREDECESSOR_SET = "predecessor-set"; 55 public static final String TAG_CHECKED_OUT = "checked-out"; 56 public static final String TAG_CHECKED_IN = "checked-in"; 57 public static final String TAG_CHECKOUT_SET = "checkout-set"; 58 public static final String TAG_VERSION_NAME = "version-name"; 59 public static final String TAG_COMMENT = "comment"; 60 public static final String TAG_CREATOR_DISPLAYNAME = "creator-displayname"; 61 public static final String TAG_SUPPORTED_METHOD_SET = 62 "supported-method-set"; 63 public static final String TAG_SUPPORTED_LIVE_PROPERTY_SET = 64 "supported-live-property-set"; 65 public static final String TAG_SUPPORTED_REPORT_SET = 66 "supported-report-set"; 67 public static final String TAG_SUPPORTED_REPORT = "supported-report"; 68 public static final String TAG_REPORT = "report"; 69 public static final String TAG_VERSION_TREE = "version-tree"; 70 71 private static List VERSION_PROPS = new Vector(); 72 73 76 private static final Logger m_logger = Logger.getLogger(VersionedPropertiesManager.class.getName()); 77 78 static { 79 VERSION_PROPS.add(TAG_SUCCESSOR_SET); 80 VERSION_PROPS.add(TAG_PREDECESSOR_SET); 81 VERSION_PROPS.add(TAG_CHECKED_OUT); 82 VERSION_PROPS.add(TAG_CHECKED_IN); 83 VERSION_PROPS.add(TAG_VERSION_NAME); 84 VERSION_PROPS.add(TAG_COMMENT); 85 VERSION_PROPS.add(TAG_CREATOR_DISPLAYNAME); 86 VERSION_PROPS.add(TAG_SUPPORTED_METHOD_SET); 87 VERSION_PROPS.add(TAG_SUPPORTED_LIVE_PROPERTY_SET); 88 VERSION_PROPS.add(TAG_SUPPORTED_REPORT_SET); 89 VERSION_PROPS.add(TAG_CHECKOUT_SET); 90 VERSION_PROPS.add(TAG_AUTO_VERSION); 91 } 92 93 96 public VersionedPropertiesManager() { 97 super(); 98 } 99 100 104 public VersionedPropertiesManager( 105 ResourceImpl resource, 106 NamespaceManager namespaceManager) { 107 super(resource, namespaceManager); 108 } 109 110 111 protected Element getAutoVersion(Document document) { 112 Element autoversionEl = 113 document.createElementNS( 114 NamespaceType.DAV.getURI(), 115 TAG_AUTO_VERSION); 116 autoversionEl.setPrefix(NamespaceType.DAV.getPrefix()); 117 Element lockedCheckoutEl = 118 document.createElementNS( 119 NamespaceType.DAV.getURI(), 120 TAG_LOCKED_CHECKOUT); 121 lockedCheckoutEl.setPrefix(NamespaceType.DAV.getPrefix()); 122 autoversionEl.appendChild(lockedCheckoutEl); 123 return autoversionEl; 124 } 125 126 private Element getSupportedReportSet(Document document) { 127 Element supReportsEl = 128 document.createElementNS( 129 NamespaceType.DAV.getURI(), 130 TAG_SUPPORTED_REPORT_SET); 131 132 supReportsEl.setPrefix(NamespaceType.DAV.getPrefix()); 133 Element supRepEl = 134 document.createElementNS( 135 NamespaceType.DAV.getURI(), 136 TAG_SUPPORTED_REPORT); 137 138 supRepEl.setPrefix(NamespaceType.DAV.getPrefix()); 139 Element reportEl = 140 document.createElementNS( 141 NamespaceType.DAV.getURI(), 142 TAG_REPORT); 143 reportEl.setPrefix(NamespaceType.DAV.getPrefix()); 144 145 reportEl.appendChild( 146 document.createElementNS( 147 NamespaceType.DAV.getURI(), 148 TAG_VERSION_TREE)); 149 supRepEl.appendChild(reportEl); 150 supReportsEl.appendChild(supRepEl); 151 return supReportsEl; 152 } 153 154 protected Element getSupportedLivePropertySet(Document document) { 155 Element supLivePropsEl = 156 document.createElementNS( 157 NamespaceType.DAV.getURI(), 158 TAG_SUPPORTED_LIVE_PROPERTY_SET); 159 160 supLivePropsEl.setPrefix(NamespaceType.DAV.getPrefix()); 161 return supLivePropsEl; 162 } 163 164 protected Element getVersionName(Document document) 165 throws DataAccessException { 166 Element versionNameEl = 167 document.createElementNS( 168 NamespaceType.DAV.getURI(), 169 TAG_VERSION_NAME); 170 versionNameEl.setPrefix(NamespaceType.DAV.getPrefix()); 171 172 versionNameEl.appendChild( 173 document.createTextNode( 174 "Version " + String.valueOf(m_child.getVersionNumber()))); 175 return versionNameEl; 176 } 177 178 protected Element getCheckedIn(Document document) 179 throws NameResolverException { 180 Element checkedInEl = 181 document.createElementNS( 182 NamespaceType.DAV.getURI(), 183 NamespaceType.DAV.getPrefix() + ":" + TAG_CHECKED_IN); 184 185 Element hrefEl = 186 document.createElementNS( 187 NamespaceType.DAV.getURI(), 188 NamespaceType.DAV.getPrefix() 189 + ":" 190 + HarmonisePropertiesManager.TAG_HREF); 191 hrefEl.appendChild( 192 document.createTextNode( 193 HarmoniseNameResolver.getVersionPath(m_child))); 194 checkedInEl.appendChild(hrefEl); 195 return checkedInEl; 196 } 197 198 protected Element getCheckedOut(Document document) 199 throws NameResolverException, DataAccessException { 200 Element checkedOutEl = 201 document.createElementNS( 202 NamespaceType.DAV.getURI(), 203 NamespaceType.DAV.getPrefix() + ":" + TAG_CHECKED_OUT); 204 205 Element hrefEl = 206 document.createElementNS( 207 NamespaceType.DAV.getURI(), 208 NamespaceType.DAV.getPrefix() 209 + ":" 210 + HarmonisePropertiesManager.TAG_HREF); 211 hrefEl.appendChild( 212 document.createTextNode( 213 HarmoniseNameResolver.getVersionPath( 214 (AbstractChildObject) m_child.getLiveVersion()))); 215 checkedOutEl.appendChild(hrefEl); 216 return checkedOutEl; 217 } 218 219 protected Element getVersionProperty(Document doc, String sPropName) throws WebDAVException, DOMException, DataAccessException, NameResolverException { 220 Element propEl = null; 221 222 if(sPropName.equals(TAG_AUTO_VERSION) && isVersioned() == true) { 223 propEl = getAutoVersion(doc); 224 } else if(sPropName.equals(TAG_CHECKED_IN) && m_child.isPendingVersion() == false) { 225 propEl = getCheckedIn(doc); 226 } else if(sPropName.equals(TAG_CHECKED_OUT) && m_child.isPendingVersion() == true) { 227 propEl = getCheckedOut(doc); 228 } else if(sPropName.equals(TAG_CHECKOUT_SET)) { 229 propEl = getCheckedOutSet(doc); 230 } else if(sPropName.equals(TAG_PREDECESSOR_SET)) { 231 propEl = getPredecessors(doc); 232 } else if(sPropName.equals(TAG_SUCCESSOR_SET)) { 233 propEl = getSuccessors(doc); 234 } else if(sPropName.equals(TAG_SUPPORTED_LIVE_PROPERTY_SET)) { 235 propEl = getSupportedLivePropertySet(doc); 236 } else if(sPropName.equals(TAG_SUPPORTED_METHOD_SET)) { 237 propEl = getSupportedMethods(doc); 238 } else if(sPropName.equals(TAG_SUPPORTED_REPORT_SET)) { 239 propEl = getSupportedReportSet(doc); 240 } else if(sPropName.equals(TAG_VERSION_NAME)) { 241 propEl = getVersionName(doc); 242 } 243 244 return propEl; 245 } 246 247 public boolean isVersionProperty(String sPropName) { 248 boolean bIsVerProp = false; 249 250 int nIndex = sPropName.indexOf(":"); 251 if (nIndex >= 0) { 252 sPropName = sPropName.substring(nIndex + 1); 253 } 254 255 bIsVerProp = VERSION_PROPS.contains(sPropName); 256 257 return bIsVerProp; 258 } 259 260 266 public void removeVersionProperties( 267 org.w3c.dom.Document propertiesDocument) { 268 Element properties = propertiesDocument.getDocumentElement(); 269 270 Iterator iter = VERSION_PROPS.iterator(); 271 272 while (iter.hasNext()) { 273 String sPropName = (String ) iter.next(); 274 275 Element p = 276 (Element) ((Element) properties) 277 .getElementsByTagNameNS( 278 NamespaceType.DAV.getURI(), 279 sPropName) 280 .item(0); 281 282 if (p != null) { 283 properties.removeChild(p); 284 } 285 286 } 287 288 } 289 290 297 protected Element getSuccessors(Document document) 298 throws WebDAVException { 299 Element successorSetEl = 300 document.createElementNS( 301 NamespaceType.DAV.getURI(), 302 NamespaceType.DAV.getPrefix() + ":" + TAG_SUCCESSOR_SET); 303 304 try { 305 306 307 Vector successors = new Vector(); 308 AbstractChildObject liveChild = m_child; 309 310 if (m_child.isLiveVersion() == false) { 311 liveChild = (AbstractChildObject) m_child.getLiveVersion(); 312 } 313 314 if (m_child.isHistorical() == true) { 315 316 List history = m_child.getAllVersions(); 317 318 Iterator histIter = history.iterator(); 319 320 while (histIter.hasNext()) { 322 AbstractChildObject tmpChild = 323 (AbstractChildObject) histIter.next(); 324 325 if (tmpChild.getVersionNumber() 326 > m_child.getVersionNumber()) { 327 successors.add(tmpChild); 328 } 329 } 330 } 331 332 Iterator successorIter = successors.iterator(); 333 334 while (successorIter.hasNext()) { 335 AbstractChildObject tmpChild = 336 (AbstractChildObject) successorIter.next(); 337 Element hrefEl = 338 document.createElementNS( 339 NamespaceType.DAV.getURI(), 340 NamespaceType.DAV.getPrefix() 341 + ":" 342 + HarmonisePropertiesManager.TAG_HREF); 343 hrefEl.appendChild( 344 document.createTextNode( 345 HarmoniseNameResolver.getVersionPath(tmpChild))); 346 successorSetEl.appendChild(hrefEl); 347 } 348 349 } catch (DataAccessException e) { 350 throw new WebDAVException( 351 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 352 e.getLocalizedMessage()); 353 } catch (NameResolverException e) { 354 throw new WebDAVException( 355 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 356 e.getLocalizedMessage()); 357 } 358 return successorSetEl; 359 } 360 361 371 private Element getPredecessors(Document document) 372 throws 373 WebDAVException, 374 DOMException, 375 NameResolverException, 376 DataAccessException { 377 Element predecessorSetEl = 378 document.createElementNS( 379 NamespaceType.DAV.getURI(), 380 NamespaceType.DAV.getPrefix() + ":" + TAG_PREDECESSOR_SET); 381 ArrayList preds = new ArrayList(); 382 383 if (m_child.isHistorical() == false 384 && m_child.isLiveVersion() == false) { 385 preds.add(m_child.getLiveVersion()); 386 } 387 388 List hists = m_child.getHistoricalVersions(); 389 390 Iterator histIter = hists.iterator(); 391 392 while (histIter.hasNext()) { 393 AbstractChildObject tmpChild = 394 (AbstractChildObject) histIter.next(); 395 396 if (tmpChild.getVersionNumber() < m_child.getVersionNumber()) { 397 preds.add(tmpChild); 398 } 399 } 400 401 Iterator predIter = preds.iterator(); 402 403 while (predIter.hasNext()) { 404 AbstractChildObject tmpChild = 405 (AbstractChildObject) predIter.next(); 406 Element hrefEl = 407 document.createElementNS( 408 NamespaceType.DAV.getURI(), 409 NamespaceType.DAV.getPrefix() 410 + ":" 411 + HarmonisePropertiesManager.TAG_HREF); 412 hrefEl.appendChild( 413 document.createTextNode( 414 HarmoniseNameResolver.getVersionPath(tmpChild))); 415 predecessorSetEl.appendChild(hrefEl); 416 } 417 418 return predecessorSetEl; 419 } 420 421 430 private Element getCheckedOutSet(Document document) 431 throws DataAccessException, DOMException, NameResolverException { 432 List pends = m_child.getPendingVersions(); 433 434 Iterator iter = pends.iterator(); 435 Element checkoutSetEl = 436 document.createElementNS( 437 NamespaceType.DAV.getURI(), 438 TAG_CHECKOUT_SET); 439 checkoutSetEl.setPrefix(NamespaceType.DAV.getPrefix()); 440 while (iter.hasNext()) { 441 AbstractChildObject tmpChild = (AbstractChildObject) iter.next(); 442 Element hrefEl = 443 document.createElementNS( 444 NamespaceType.DAV.getURI(), 445 NamespaceType.DAV.getPrefix() 446 + ":" 447 + HarmonisePropertiesManager.TAG_HREF); 448 hrefEl.appendChild( 449 document.createTextNode( 450 HarmoniseNameResolver.getVersionPath(tmpChild))); 451 checkoutSetEl.appendChild(hrefEl); 452 } 453 454 return checkoutSetEl; 455 } 456 457 464 public void updateVersionProperties(Document document) 465 throws WebDAVException { 466 467 if (m_child == null) { 468 throw new WebDAVException( 469 WebDAVStatus.SC_NOT_FOUND, 470 "Could not find resource at this location"); 471 } 472 473 try { 474 Element properties = document.getDocumentElement(); 475 476 properties.appendChild(getSuccessors(document)); 477 478 properties.appendChild(getPredecessors(document)); 479 480 if (m_child.isPendingVersion() == true) { 481 Element checkedOutEl = getCheckedOut(document); 482 properties.appendChild(checkedOutEl); 483 484 } else if (m_child.isLiveVersion() == true) { 485 486 Element checkedInEl = getCheckedIn(document); 487 properties.appendChild(checkedInEl); 488 489 properties.appendChild(getCheckedOutSet(document)); 490 491 } else if ( 492 m_child.isHistorical() == true 493 && m_child.getLiveVersion() == null) { 494 AbstractParentObject parent = m_child.getRealParent(); 495 if(parent != null) { 496 List archived = parent.getArchivedChildren(); 497 498 if (archived.contains(m_child) == true) { 499 Element checkedInEl = getCheckedIn(document); 500 properties.appendChild(checkedInEl); 501 } 502 } 503 504 } 505 506 Element versionNameEl = getVersionName(document); 508 properties.appendChild(versionNameEl); 509 510 Element supMethodsEl = getSupportedMethods(document); 512 513 properties.appendChild(supMethodsEl); 514 515 Element supLivePropsEl = getSupportedLivePropertySet(document); 517 518 properties.appendChild(supLivePropsEl); 519 520 Element supReportsEl = getSupportedReportSet(document); 522 properties.appendChild(supReportsEl); 523 524 if (isVersioned() == true) { 525 Element autoversionEl = getAutoVersion(document); 526 527 properties.appendChild(autoversionEl); 528 } 529 530 } catch (DataAccessException e) { 531 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 532 throw new WebDAVException( 533 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 534 e.getLocalizedMessage()); 535 } catch (NameResolverException e) { 536 throw new WebDAVException( 537 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 538 e.getLocalizedMessage()); 539 } 540 541 } 542 543 549 private Element getSupportedMethods(Document document) { 550 Element supMethodsEl = 551 document.createElementNS( 552 NamespaceType.DAV.getURI(), 553 TAG_SUPPORTED_METHOD_SET); 554 555 supMethodsEl.setPrefix(NamespaceType.DAV.getPrefix()); 556 557 559 return supMethodsEl; 560 } 561 562 568 public boolean isVersioned() throws WebDAVException { 569 boolean bIsVersioned = false; 570 571 if (m_child != null) { 572 try { 573 bIsVersioned = 574 (m_child.isHistorical() == true 575 || m_child.getLiveVersion() != null); 576 } catch (DataAccessException e) { 577 throw new WebDAVException( 578 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 579 e.getLocalizedMessage()); 580 } 581 } 582 583 return bIsVersioned; 584 } 585 586 590 protected boolean isAllNonPropertyInstanceProperties(PropertyName[] names) { 591 boolean bIsAllLive = true; 592 593 int i = 0; 594 595 596 while(bIsAllLive == true && i < names.length) { 597 String sLocalPropName = names[i].getLocal(); 598 599 bIsAllLive = false; 600 601 bIsAllLive = isLive(sLocalPropName); 602 603 if(bIsAllLive == false) { 604 bIsAllLive = isVersionProperty(sLocalPropName); 605 } 606 607 if(bIsAllLive == false) { 608 bIsAllLive = sLocalPropName.equals(TAG_TITLE) || 609 sLocalPropName.equals(DAVRange.TAG_RANGE) || 610 sLocalPropName.equals(DAVDomain.TAG_DOMAIN) || 611 sLocalPropName.equals(TAG_LOCKDISCOVERY); 612 } 613 614 i++; 615 } 616 617 return bIsAllLive; 618 } 619 620 623 public MultiStatus getProperties(PropertyName[] names) 624 throws WebDAVException { 625 629 MultiStatus result = null; 630 if(isAllNonPropertyInstanceProperties(names) == true) { 631 try { 632 result = new MultiStatus(); 633 634 DocumentBuilderFactory factory = DocumentBuilderFactory 635 .newInstance(); 636 factory.setNamespaceAware(true); 637 638 org.w3c.dom.Document propsDoc = factory.newDocumentBuilder() 639 .newDocument(); 640 641 Element properties = 642 (Element) propsDoc.createElement("properties"); 643 properties.setAttribute("xmlns:D", NamespaceType.DAV.getURI()); 644 propsDoc.appendChild(properties); 645 646 this.updateLiveProperties(propsDoc); 648 649 PropertyResponse newResponse = new PropertyResponse(resource.getURL().getFile()); 650 651 for (int i = 0; i < names.length; i++) { 653 PropertyName tempName = names[i]; 654 655 String propName = tempName.getLocal(); 656 657 if(propName.equals(TAG_TITLE) && m_child != null) { 658 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 659 660 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 661 662 elTm.appendChild(propsDoc.createTextNode(m_child.getDisplayName())); 663 664 newResponse.addProperty(names[i], elTm, 665 WebDAVStatus.SC_OK); 666 } else if(propName.equals(TAG_HARMONISE_ID) && m_child != null) { 667 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 668 669 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 670 671 elTm.appendChild(propsDoc.createTextNode(String.valueOf(m_child.getId()))); 672 673 newResponse.addProperty(names[i], elTm, 674 WebDAVStatus.SC_OK); 675 } else if(propName.equals(TAG_DESCRIPTION) && m_child != null) { 676 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 677 678 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 679 680 elTm.appendChild(propsDoc.createTextNode(m_child.getSummary())); 681 682 newResponse.addProperty(names[i], elTm, 683 WebDAVStatus.SC_OK); 684 } else if(propName.equals(TAG_LOCKDISCOVERY) && m_child != null && m_child.isLocked() == true) { 685 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 686 687 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 688 689 addLockData(elTm); 690 691 newResponse.addProperty(names[i], elTm, 692 WebDAVStatus.SC_OK); 693 } else if(propName.equals(DAVRange.TAG_RANGE) && m_child != null && m_child instanceof Property) { 694 695 696 newResponse.addProperty(names[i], getRangeElement(propsDoc, (Property)m_child), 697 WebDAVStatus.SC_OK); 698 } else if(propName.equals(DAVDomain.TAG_DOMAIN) && m_child != null && m_child instanceof Property) { 699 DAVDomain davDomain =new DAVDomain(m_dsi, ((Property)m_child).getDomains()); 700 701 Element domainEl = davDomain.asXML(propsDoc); 702 703 newResponse.addProperty(names[i], getRangeElement(propsDoc, (Property)m_child), 704 WebDAVStatus.SC_OK); 705 } else if (isVersioned() && isVersionProperty(propName)) { 706 Element propEl = getVersionProperty(propsDoc, propName); 707 708 if(propEl == null) { 709 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 710 711 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 712 713 newResponse.addProperty(names[i], elTm, 714 WebDAVStatus.SC_NOT_FOUND); 715 } else { 716 newResponse.addProperty(names[i], propEl, WebDAVStatus.SC_OK); 717 } 718 719 } else { 720 NodeList nodes = properties.getElementsByTagNameNS( 721 NamespaceType.DAV.getURI(), 722 propName); 723 724 if(nodes.getLength() > 0) { 725 Element propEl = (Element)nodes.item(0); 726 727 newResponse.addProperty(tempName, propEl, WebDAVStatus.SC_OK); 728 } else { 729 Element elTm = propsDoc.createElementNS(names[i].getNamespace(),"X:" + names[i].getLocal()); 730 731 elTm.setAttribute("xmlns:X", names[i].getNamespace()); 732 733 newResponse.addProperty(names[i], elTm, 734 WebDAVStatus.SC_NOT_FOUND); 735 } 736 } 737 738 } 739 740 result.addResponse(newResponse); 741 } catch (ServerException e) { 742 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 743 throw new WebDAVException( 744 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 745 e.getLocalizedMessage()); 746 } catch (DOMException e) { 747 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 748 throw new WebDAVException( 749 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 750 e.getLocalizedMessage()); 751 } catch (ParserConfigurationException e) { 752 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 753 throw new WebDAVException( 754 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 755 e.getLocalizedMessage()); 756 } catch (FactoryConfigurationError e) { 757 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 758 throw new WebDAVException( 759 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 760 e.getLocalizedMessage()); 761 } catch (DataAccessException e) { 762 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 763 throw new WebDAVException( 764 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 765 e.getLocalizedMessage()); 766 } catch (WebDAVException e) { 767 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 768 throw new WebDAVException( 769 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 770 e.getLocalizedMessage()); 771 } catch (NameResolverException e) { 772 m_logger.log(Level.WARNING, e.getLocalizedMessage(), e); 773 throw new WebDAVException( 774 WebDAVStatus.SC_INTERNAL_SERVER_ERROR, 775 e.getLocalizedMessage()); 776 } 777 } else { 778 result = super.getProperties(names); 779 } 780 781 return result; 782 } 783 784 } 785 | Popular Tags |