[ 
https://issues.apache.org/jira/browse/OAK-669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13596125#comment-13596125
 ] 

Antonio Sanso edited comment on OAK-669 at 3/7/13 6:10 PM:
-----------------------------------------------------------

This first simple patch should solve the first StringIndexOutOfBoundsException. 
 

                
      was (Author: asanso):
    This first simple patch should solve the first 
StringIndexOutOfBoundsException.  

### Eclipse Workspace Patch 1.0
#P oak-http
Index: src/main/java/org/apache/jackrabbit/oak/http/OakServlet.java
===================================================================
--- src/main/java/org/apache/jackrabbit/oak/http/OakServlet.java        
(revision 1453981)
+++ src/main/java/org/apache/jackrabbit/oak/http/OakServlet.java        
(working copy)
@@ -80,8 +80,11 @@
                 while (tree == null) {
                     int slash = head.lastIndexOf('/');
                     tail = head.substring(slash) + tail;
-                    head = head.substring(0, slash - 1);
-                    tree = root.getTree(tail);
+                    head = head.substring(0, slash);
+                    if (head.isEmpty()){
+                       head="/";
+                    }
+                    tree = root.getTree(head);
                 }
                 request.setAttribute("tree", tree);
                 request.setAttribute("path", tail);

                  
> Exception while creating a new node using the HTTP API
> ------------------------------------------------------
>
>                 Key: OAK-669
>                 URL: https://issues.apache.org/jira/browse/OAK-669
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: commons
>            Reporter: Antonio Sanso
>         Attachments: OAK-669-patch.txt
>
>
> Following the example in [0] I have tried to create a new node using 
> curl -d foo=bar http://localhost:8080/test
> after running the oak run project 
> java -jar target/oak-run-0.7-SNAPSHOT.jar 
> I got an exception like
> 12:28:35.903 WARN  [qtp1563093566-16] ServletHandler.java:553 /test
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>       at java.lang.String.substring(String.java:1937) ~[na:1.6.0_41]
>       at 
> org.apache.jackrabbit.oak.http.OakServlet.service(OakServlet.java:83) 
> ~[oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
> ~[oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594) 
> ~[oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1067)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at org.eclipse.jetty.server.Server.handle(Server.java:351) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:857) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
> [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
>  [oak-run-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
>       at java.lang.Thread.run(Thread.java:680) [na:1.6.0_41]
> [0] http://wiki.apache.org/jackrabbit/Oak-over-HTTP

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to