You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Michael Dürig <mi...@gmail.com> on 2011/11/24 23:50:38 UTC

[jr3 Microkernel] NPE on conflicting commits

There is another case where conflicting commits cause an NPE. This time 
its a conflict between add and remove. See testcase in forwarded commit 
message.

Michael

-------- Original Message --------
Subject: svn commit: r1206008 - 
/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
Date: Thu, 24 Nov 2011 22:45:33 -0000
From: mduerig@apache.org
Reply-To: dev@jackrabbit.apache.org
To: commits@jackrabbit.apache.org

Author: mduerig
Date: Thu Nov 24 22:45:32 2011
New Revision: 1206008

URL: http://svn.apache.org/viewvc?rev=1206008&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
add test case for pathological add delete conflict

Modified:
 
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java

Modified: 
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java?rev=1206008&r1=1206007&r2=1206008&view=diff
==============================================================================
--- 
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java 
(original)
+++ 
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java 
Thu Nov 24 22:45:32 2011
@@ -196,6 +196,27 @@ public class MicrokernelTest {
      @Test
      @Ignore
      // todo fix microkernel
+    public void conflictingAddDelete() {
+        MicroKernel mk = getMicroKernel();
+        String head = mk.getHeadRevision();
+
+        head = mk.commit("/", "+\"a\" : {} \r+\"b\" : {}\n", head, "");
+
+        String r1 = mk.commit("/", "-\"b\" \r +\"a/x\" : {}", head, "");
+        assertFalse(mk.nodeExists("/b", r1));
+        assertTrue(mk.nodeExists("/a", r1));
+        assertTrue(mk.nodeExists("/a/x", r1));
+
+        String r2 = mk.commit("/", "-\"a\" \r +\"b/x\" : {}", head, "");
+        // todo not really sure what the result should be. Currently 
this throws a NPE...
+//        assertFalse(mk.nodeExists("/a", r2));
+//        assertTrue(mk.nodeExists("/b", r2));
+//        assertTrue(mk.nodeExists("/b/x", r2));
+    }
+
+    @Test
+    @Ignore
+    // todo fix microkernel
      public void reorderNode() {
          MicroKernel mk = getMicroKernel();
          String head = mk.getHeadRevision();



Re: [jr3 Microkernel] NPE on conflicting commits

Posted by Michael Dürig <md...@apache.org>.
Works great, thanks.
Michael

On 25.11.11 14:17, Stefan Guggisberg wrote:
> fixed in svn r1206183.
>
> thanks
> stefan
>
> On Fri, Nov 25, 2011 at 11:29 AM, Stefan Guggisberg<st...@apache.org>  wrote:
>> On Thu, Nov 24, 2011 at 11:50 PM, Michael Dürig<mi...@gmail.com>  wrote:
>>>
>>> There is another case where conflicting commits cause an NPE. This time its
>>> a conflict between add and remove. See testcase in forwarded commit message.
>>
>> thanks, i'll have a look.
>>
>> cheers
>> stefan
>>
>>>
>>> Michael
>>>
>>> -------- Original Message --------
>>> Subject: svn commit: r1206008 -
>>> /jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>> Date: Thu, 24 Nov 2011 22:45:33 -0000
>>> From: mduerig@apache.org
>>> Reply-To: dev@jackrabbit.apache.org
>>> To: commits@jackrabbit.apache.org
>>>
>>> Author: mduerig
>>> Date: Thu Nov 24 22:45:32 2011
>>> New Revision: 1206008
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1206008&view=rev
>>> Log:
>>> Microkernel based Jackrabbit prototype (WIP)
>>> add test case for pathological add delete conflict
>>>
>>> Modified:
>>>
>>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>>
>>> Modified:
>>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>> URL:
>>> http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java?rev=1206008&r1=1206007&r2=1206008&view=diff
>>> ==============================================================================
>>> ---
>>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>> (original)
>>> +++
>>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>> Thu Nov 24 22:45:32 2011
>>> @@ -196,6 +196,27 @@ public class MicrokernelTest {
>>>      @Test
>>>      @Ignore
>>>      // todo fix microkernel
>>> +    public void conflictingAddDelete() {
>>> +        MicroKernel mk = getMicroKernel();
>>> +        String head = mk.getHeadRevision();
>>> +
>>> +        head = mk.commit("/", "+\"a\" : {} \r+\"b\" : {}\n", head, "");
>>> +
>>> +        String r1 = mk.commit("/", "-\"b\" \r +\"a/x\" : {}", head, "");
>>> +        assertFalse(mk.nodeExists("/b", r1));
>>> +        assertTrue(mk.nodeExists("/a", r1));
>>> +        assertTrue(mk.nodeExists("/a/x", r1));
>>> +
>>> +        String r2 = mk.commit("/", "-\"a\" \r +\"b/x\" : {}", head, "");
>>> +        // todo not really sure what the result should be. Currently this
>>> throws a NPE...
>>> +//        assertFalse(mk.nodeExists("/a", r2));
>>> +//        assertTrue(mk.nodeExists("/b", r2));
>>> +//        assertTrue(mk.nodeExists("/b/x", r2));
>>> +    }
>>> +
>>> +    @Test
>>> +    @Ignore
>>> +    // todo fix microkernel
>>>      public void reorderNode() {
>>>          MicroKernel mk = getMicroKernel();
>>>          String head = mk.getHeadRevision();
>>>
>>>
>>>
>>

Re: [jr3 Microkernel] NPE on conflicting commits

Posted by Stefan Guggisberg <st...@apache.org>.
fixed in svn r1206183.

thanks
stefan

On Fri, Nov 25, 2011 at 11:29 AM, Stefan Guggisberg <st...@apache.org> wrote:
> On Thu, Nov 24, 2011 at 11:50 PM, Michael Dürig <mi...@gmail.com> wrote:
>>
>> There is another case where conflicting commits cause an NPE. This time its
>> a conflict between add and remove. See testcase in forwarded commit message.
>
> thanks, i'll have a look.
>
> cheers
> stefan
>
>>
>> Michael
>>
>> -------- Original Message --------
>> Subject: svn commit: r1206008 -
>> /jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>> Date: Thu, 24 Nov 2011 22:45:33 -0000
>> From: mduerig@apache.org
>> Reply-To: dev@jackrabbit.apache.org
>> To: commits@jackrabbit.apache.org
>>
>> Author: mduerig
>> Date: Thu Nov 24 22:45:32 2011
>> New Revision: 1206008
>>
>> URL: http://svn.apache.org/viewvc?rev=1206008&view=rev
>> Log:
>> Microkernel based Jackrabbit prototype (WIP)
>> add test case for pathological add delete conflict
>>
>> Modified:
>>
>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>>
>> Modified:
>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>> URL:
>> http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java?rev=1206008&r1=1206007&r2=1206008&view=diff
>> ==============================================================================
>> ---
>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>> (original)
>> +++
>> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>> Thu Nov 24 22:45:32 2011
>> @@ -196,6 +196,27 @@ public class MicrokernelTest {
>>     @Test
>>     @Ignore
>>     // todo fix microkernel
>> +    public void conflictingAddDelete() {
>> +        MicroKernel mk = getMicroKernel();
>> +        String head = mk.getHeadRevision();
>> +
>> +        head = mk.commit("/", "+\"a\" : {} \r+\"b\" : {}\n", head, "");
>> +
>> +        String r1 = mk.commit("/", "-\"b\" \r +\"a/x\" : {}", head, "");
>> +        assertFalse(mk.nodeExists("/b", r1));
>> +        assertTrue(mk.nodeExists("/a", r1));
>> +        assertTrue(mk.nodeExists("/a/x", r1));
>> +
>> +        String r2 = mk.commit("/", "-\"a\" \r +\"b/x\" : {}", head, "");
>> +        // todo not really sure what the result should be. Currently this
>> throws a NPE...
>> +//        assertFalse(mk.nodeExists("/a", r2));
>> +//        assertTrue(mk.nodeExists("/b", r2));
>> +//        assertTrue(mk.nodeExists("/b/x", r2));
>> +    }
>> +
>> +    @Test
>> +    @Ignore
>> +    // todo fix microkernel
>>     public void reorderNode() {
>>         MicroKernel mk = getMicroKernel();
>>         String head = mk.getHeadRevision();
>>
>>
>>
>

Re: [jr3 Microkernel] NPE on conflicting commits

Posted by Stefan Guggisberg <st...@apache.org>.
On Thu, Nov 24, 2011 at 11:50 PM, Michael Dürig <mi...@gmail.com> wrote:
>
> There is another case where conflicting commits cause an NPE. This time its
> a conflict between add and remove. See testcase in forwarded commit message.

thanks, i'll have a look.

cheers
stefan

>
> Michael
>
> -------- Original Message --------
> Subject: svn commit: r1206008 -
> /jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
> Date: Thu, 24 Nov 2011 22:45:33 -0000
> From: mduerig@apache.org
> Reply-To: dev@jackrabbit.apache.org
> To: commits@jackrabbit.apache.org
>
> Author: mduerig
> Date: Thu Nov 24 22:45:32 2011
> New Revision: 1206008
>
> URL: http://svn.apache.org/viewvc?rev=1206008&view=rev
> Log:
> Microkernel based Jackrabbit prototype (WIP)
> add test case for pathological add delete conflict
>
> Modified:
>
> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
>
> Modified:
> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
> URL:
> http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java?rev=1206008&r1=1206007&r2=1206008&view=diff
> ==============================================================================
> ---
> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
> (original)
> +++
> jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java
> Thu Nov 24 22:45:32 2011
> @@ -196,6 +196,27 @@ public class MicrokernelTest {
>     @Test
>     @Ignore
>     // todo fix microkernel
> +    public void conflictingAddDelete() {
> +        MicroKernel mk = getMicroKernel();
> +        String head = mk.getHeadRevision();
> +
> +        head = mk.commit("/", "+\"a\" : {} \r+\"b\" : {}\n", head, "");
> +
> +        String r1 = mk.commit("/", "-\"b\" \r +\"a/x\" : {}", head, "");
> +        assertFalse(mk.nodeExists("/b", r1));
> +        assertTrue(mk.nodeExists("/a", r1));
> +        assertTrue(mk.nodeExists("/a/x", r1));
> +
> +        String r2 = mk.commit("/", "-\"a\" \r +\"b/x\" : {}", head, "");
> +        // todo not really sure what the result should be. Currently this
> throws a NPE...
> +//        assertFalse(mk.nodeExists("/a", r2));
> +//        assertTrue(mk.nodeExists("/b", r2));
> +//        assertTrue(mk.nodeExists("/b/x", r2));
> +    }
> +
> +    @Test
> +    @Ignore
> +    // todo fix microkernel
>     public void reorderNode() {
>         MicroKernel mk = getMicroKernel();
>         String head = mk.getHeadRevision();
>
>
>