[ https://issues.apache.org/jira/browse/SLING-1432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Rose updated SLING-1432: ------------------------------ Attachment: uuid_filter_problem.log This is a copy of the log output. > Unable to Forward to Images via a Filter > ---------------------------------------- > > Key: SLING-1432 > URL: https://issues.apache.org/jira/browse/SLING-1432 > Project: Sling > Issue Type: Bug > Components: Extensions, Servlets > Reporter: Jason Rose > Attachments: uuid_filter_problem.log, UuidFilter.java > > > In my current application, I store nodes with the name of the node being a > uuid generated by a sproutcore client. Because this doesn't directly lend > itself to a deep node hierarchy, I have a filter in place that buckets these > uuids into two more levels based on the first four characters in the uuid. > I'd like this process to be transparent to the front end, so I use the filter. > The filter itself is very simple. It checks the request.getPathInfo() for > any uuids, buckets them according to a built-in strategy, then uses the > request dispatcher to forward to the new path. > i.e: > posting to /test/foo/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa ends up creating a > node at /test/foo/ab/ba/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa. Accessing > '/test/foo/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa.xml' filters it to > '/test/foo/ab/ba/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa.xml' and it works > correctly. > This sort of approach seems to solve all the performance problems in > jackrabbit and works in the general case, like when there isn't an obvious > way to naturally get a deep hierarchy. > Something breaks, though, when I try to bucket images. The node is posted > correctly, but when I try to get it via the filter in the url, I get a 404. > If I put an image with the same name under the unbucketed path using > something like DAV, requesting an unbucketed resource that gets resolved by > my filter will return the image I uploaded manually. > i.e: > posting to /test/foo/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/img.jpg ends up > creating a node at > /test/foo/ab/ba/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/img.jpg. > Accessing '/test/foo/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/img.jpg' leads to a > 404. > Accessing '/test/foo/ab/ba/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/img.jpg' > returns the correct resource. > Putting a new image also called img.jpg under > /test/foo/abbaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa with a dav, then hitting the > first path in the browser will the image stored at the bucketed path. > It seems to me that the prep work done by sling before executing the filters > leads to a dirty state that disallows me from forwarding to a new path in my > filter. Is there a way to clean up the request's state? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.