Re: [xwiki-devs] [xwiki-notifications] r27636 - platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki
On 03/15/2010 12:36 PM, vmassol (SVN) wrote:
Author: vmassol Date: 2010-03-15 12:36:08 +0100 (Mon, 15 Mar 2010) New Revision: 27636
Modified: platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java Log: XWIKI-4902: Introduce new APIs based on Entity Reference (public APIs)
* Better implementation
Modified: platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java =================================================================== --- platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java 2010-03-15 11:04:29 UTC (rev 27635) +++ platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java 2010-03-15 11:36:08 UTC (rev 27636) @@ -1493,8 +1493,11 @@ public DocumentReference getDocumentReferenceFromPath(String path, XWikiContext context) { // TODO: Remove this and use XWikiURLFactory instead in XWikiAction and all entry points. + + // Make sure the path is URL-decoded + String decodedPath = Util.decodeURI(path, context);
No, this breaks encoded / (%2B) in document names.
List<String> segments = new ArrayList<String>(); - for (String segment : path.split("/", -1)) { + for (String segment : decodedPath.split("/", -1)) { segments.add(segment); } // Remove the first segment if it's empty to cater for cases when the path starts with "/" @@ -1505,18 +1508,7 @@ XWikiEntityURL entityURL = (XWikiEntityURL) this.entityXWikiURLBuilder.build( new WikiReference(context.getDatabase()), segments);
- // URL-unencode the parsed document reference parts since the path we get as input can contain URL-encoded - // path segments. - // TODO: When we move to using XWikiURLFactory this won't be needed anymore. - DocumentReference documentReference = - new DocumentReference(entityURL.getEntityReference().extractReference(EntityType.DOCUMENT)); - documentReference.setName(Util.decodeURI(documentReference.getName(), context)); - documentReference.getLastSpaceReference().setName( - Util.decodeURI(documentReference.getLastSpaceReference().getName(), context)); - documentReference.getWikiReference().setName( - Util.decodeURI(documentReference.getWikiReference().getName(), context)); - - return documentReference; + return new DocumentReference(entityURL.getEntityReference().extractReference(EntityType.DOCUMENT)); }
-- Sergiu Dumitriu http://purl.org/net/sergiu/
participants (1)
-
Sergiu Dumitriu