[jira] [Updated] (OAK-2650) [Oak API remoting] Error handling

2015-03-19 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-2650:
---
Issue Type: New Feature  (was: Task)

 [Oak API remoting] Error handling
 -

 Key: OAK-2650
 URL: https://issues.apache.org/jira/browse/OAK-2650
 Project: Jackrabbit Oak
  Issue Type: New Feature
Reporter: Fabrice Hong
Priority: Blocker

 * Implement exception handling
 * Provide error information to developer through debug log
 * Provide error information to API client



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (OAK-2650) [Oak API remoting] Error handling

2015-03-19 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-2650:
---
Priority: Major  (was: Blocker)

 [Oak API remoting] Error handling
 -

 Key: OAK-2650
 URL: https://issues.apache.org/jira/browse/OAK-2650
 Project: Jackrabbit Oak
  Issue Type: New Feature
Reporter: Fabrice Hong

 * Implement exception handling
 * Provide error information to developer through debug log
 * Provide error information to API client



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (OAK-2237) NodeStoreKernel.getNodes throws when passing filter=

2014-10-28 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-2237:
--

Assignee: Stefan Guggisberg

 NodeStoreKernel.getNodes throws when passing filter=
 --

 Key: OAK-2237
 URL: https://issues.apache.org/jira/browse/OAK-2237
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
 Fix For: 1.0.8, 1.2, 1.1.2


 calling {{NodeStoreKernel.getNodes}} with {{filter=}} results in the 
 following stacktrace:
 {code}
 IllegalArgumentException: [*] expected: '{'
 at 
 org.apache.jackrabbit.oak.commons.json.JsopTokenizer.getFormatException(JsopTokenizer.java:373)
 at 
 org.apache.jackrabbit.oak.commons.json.JsopTokenizer.read(JsopTokenizer.java:107)
 at org.apache.jackrabbit.oak.kernel.JsonFilter.init(JsonFilter.java:43)
 at 
 org.apache.jackrabbit.oak.kernel.JsonSerializer.init(JsonSerializer.java:69)
 at 
 org.apache.jackrabbit.oak.kernel.NodeStoreKernel.getNodes(NodeStoreKernel.java:499)
 at ...
 {code}
 according to {{MicroKernel.getNodes}}:
 {quote}
  @param filteroptional filter on property and/or node names; if 
 {{null}} or {{}} the default filter will be assumed
 {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (OAK-2237) NodeStoreKernel.getNodes throws when passing filter=

2014-10-28 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-2237:
--

 Summary: NodeStoreKernel.getNodes throws when passing filter=
 Key: OAK-2237
 URL: https://issues.apache.org/jira/browse/OAK-2237
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Stefan Guggisberg
 Fix For: 1.0.8, 1.2, 1.1.2


calling {{NodeStoreKernel.getNodes}} with {{filter=}} results in the 
following stacktrace:
{code}
IllegalArgumentException: [*] expected: '{'
at 
org.apache.jackrabbit.oak.commons.json.JsopTokenizer.getFormatException(JsopTokenizer.java:373)
at 
org.apache.jackrabbit.oak.commons.json.JsopTokenizer.read(JsopTokenizer.java:107)
at org.apache.jackrabbit.oak.kernel.JsonFilter.init(JsonFilter.java:43)
at 
org.apache.jackrabbit.oak.kernel.JsonSerializer.init(JsonSerializer.java:69)
at 
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.getNodes(NodeStoreKernel.java:499)
at ...
{code}

according to {{MicroKernel.getNodes}}:
{quote}
 @param filteroptional filter on property and/or node names; if 
{{null}} or {{}} the default filter will be assumed
{quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (OAK-2237) NodeStoreKernel.getNodes throws when passing filter=

2014-10-28 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-2237.

Resolution: Fixed

fixed in svn r1634898

 NodeStoreKernel.getNodes throws when passing filter=
 --

 Key: OAK-2237
 URL: https://issues.apache.org/jira/browse/OAK-2237
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
 Fix For: 1.0.8, 1.2, 1.1.2


 calling {{NodeStoreKernel.getNodes}} with {{filter=}} results in the 
 following stacktrace:
 {code}
 IllegalArgumentException: [*] expected: '{'
 at 
 org.apache.jackrabbit.oak.commons.json.JsopTokenizer.getFormatException(JsopTokenizer.java:373)
 at 
 org.apache.jackrabbit.oak.commons.json.JsopTokenizer.read(JsopTokenizer.java:107)
 at org.apache.jackrabbit.oak.kernel.JsonFilter.init(JsonFilter.java:43)
 at 
 org.apache.jackrabbit.oak.kernel.JsonSerializer.init(JsonSerializer.java:69)
 at 
 org.apache.jackrabbit.oak.kernel.NodeStoreKernel.getNodes(NodeStoreKernel.java:499)
 at ...
 {code}
 according to {{MicroKernel.getNodes}}:
 {quote}
  @param filteroptional filter on property and/or node names; if 
 {{null}} or {{}} the default filter will be assumed
 {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (OAK-2160) mk.getRevisionHistory: clarify since parameter

2014-10-03 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-2160:
--

 Summary: mk.getRevisionHistory: clarify since parameter
 Key: OAK-2160
 URL: https://issues.apache.org/jira/browse/OAK-2160
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg


the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
_number of milliseconds since midnight of January 1, 1970_)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (OAK-2160) mk.getRevisionHistory: clarify since parameter

2014-10-03 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-2160:
---
Description: 
getRevisionHistory:
the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
_number of milliseconds since midnight of January 1, 1970_)

  was:the {{since}} parameter (timestamp in ms) needs further clarification 
(i.e. _number of milliseconds since midnight of January 1, 1970_)


 mk.getRevisionHistory: clarify since parameter
 --

 Key: OAK-2160
 URL: https://issues.apache.org/jira/browse/OAK-2160
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg

 getRevisionHistory:
 the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
 _number of milliseconds since midnight of January 1, 1970_)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (OAK-2160) mk.getRevisionHistory: clarify since parameter

2014-10-03 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-2160:
---
Description: 
getRevisionHistory:
the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
_number of milliseconds since midnight, January 1, 1970 UTC_)

  was:
getRevisionHistory:
the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
_number of milliseconds since midnight of January 1, 1970_)


 mk.getRevisionHistory: clarify since parameter
 --

 Key: OAK-2160
 URL: https://issues.apache.org/jira/browse/OAK-2160
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg

 getRevisionHistory:
 the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
 _number of milliseconds since midnight, January 1, 1970 UTC_)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (OAK-2160) mk.getRevisionHistory: clarify since parameter

2014-10-03 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-2160.

   Resolution: Fixed
Fix Version/s: 1.0.7
   1.1

fixed in svn r1629148

 mk.getRevisionHistory: clarify since parameter
 --

 Key: OAK-2160
 URL: https://issues.apache.org/jira/browse/OAK-2160
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
 Fix For: 1.1, 1.0.7


 getRevisionHistory:
 the {{since}} parameter (timestamp in ms) needs further clarification (i.e. 
 _number of milliseconds since midnight, January 1, 1970 UTC_)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (OAK-2161) MicroKernelIT: clean test content

2014-10-03 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-2161:
--

 Summary: MicroKernelIT: clean test content
 Key: OAK-2161
 URL: https://issues.apache.org/jira/browse/OAK-2161
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg


test content is currently not cleaned. this leads to errors when running 
against a non-transient mk. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (OAK-2161) MicroKernelIT: clean test content

2014-10-03 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-2161.

   Resolution: Fixed
Fix Version/s: 1.0.7
   1.1

fixed in svn r1629160

 MicroKernelIT: clean test content
 -

 Key: OAK-2161
 URL: https://issues.apache.org/jira/browse/OAK-2161
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
 Fix For: 1.1, 1.0.7


 test content is currently not cleaned. this leads to errors when running 
 against a non-transient mk. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (OAK-2162) oak-it-mk: add ClientFixture

2014-10-03 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-2162:
--

 Summary: oak-it-mk: add ClientFixture
 Key: OAK-2162
 URL: https://issues.apache.org/jira/browse/OAK-2162
 Project: Jackrabbit Oak
  Issue Type: Improvement
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg


add a ClientFixture for testing externally started remote MicroKernel instances



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (OAK-2162) oak-it-mk: add ClientFixture

2014-10-03 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-2162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-2162:
---
Component/s: mk

 oak-it-mk: add ClientFixture
 

 Key: OAK-2162
 URL: https://issues.apache.org/jira/browse/OAK-2162
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg

 add a ClientFixture for testing externally started remote MicroKernel 
 instances



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OAK-1929) MicroKernelServer not usable with user specified MicroKernel implementation

2014-07-01 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14048885#comment-14048885
 ] 

Stefan Guggisberg commented on OAK-1929:


i prefer 2), but 1) would be fine by me as well.

 MicroKernelServer not usable with user specified MicroKernel implementation 
 

 Key: OAK-1929
 URL: https://issues.apache.org/jira/browse/OAK-1929
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: run
Affects Versions: 1.0
Reporter: Michael Dürig
Assignee: Michael Dürig
 Fix For: 1.1


 {{MicroKernelServer}} is hard coded to use {{MicroKernelImpl}}, which limits 
 its usefulness. I suggest we either,
 # make this server part of {{oak-run}}'s {{Main}} class,
 # add additional command line arguments to specify the MK implementation,
 # remove the class altogether.
 WDYT?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (OAK-1931) MicroKernel.read() returns negative value

2014-07-01 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-1931.


   Resolution: Fixed
Fix Version/s: 1.0.2

fixed implementations and adapted test cases where necessary

svn r1607081

 MicroKernel.read() returns negative value
 -

 Key: OAK-1931
 URL: https://issues.apache.org/jira/browse/OAK-1931
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Affects Versions: 1.0
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 1.0.2


 The contract of {{MicroKernel#read}} states: This method never returns 
 negative values.. However, AFAICS all of our implementations *do* return -1 
 under certain circumstances and some test cases (e.g. 
 {{MicroKernelInputStreamTest}} even rely on this). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (OAK-1931) MicroKernel.read() returns negative value

2014-07-01 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-1931:
---

Fix Version/s: 1.1

 MicroKernel.read() returns negative value
 -

 Key: OAK-1931
 URL: https://issues.apache.org/jira/browse/OAK-1931
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Affects Versions: 1.0
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 1.0.2, 1.1


 The contract of {{MicroKernel#read}} states: This method never returns 
 negative values.. However, AFAICS all of our implementations *do* return -1 
 under certain circumstances and some test cases (e.g. 
 {{MicroKernelInputStreamTest}} even rely on this). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (OAK-1931) MicroKernel.read() returns negative value

2014-06-30 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-1931:
--

Assignee: Stefan Guggisberg

 MicroKernel.read() returns negative value
 -

 Key: OAK-1931
 URL: https://issues.apache.org/jira/browse/OAK-1931
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Affects Versions: 1.0
Reporter: Michael Dürig
Assignee: Stefan Guggisberg

 The contract of {{MicroKernel#read}} states: This method never returns 
 negative values.. However, AFAICS all of our implementations *do* return -1 
 under certain circumstances and some test cases (e.g. 
 {{MicroKernelInputStreamTest}} even rely on this). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (OAK-1327) Cleanup NodeStore and MK implementations

2014-06-27 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14046078#comment-14046078
 ] 

Stefan Guggisberg commented on OAK-1327:


-1, the {{MicroKernel}} implementation *is* maintained by me.

 Cleanup NodeStore and MK implementations
 

 Key: OAK-1327
 URL: https://issues.apache.org/jira/browse/OAK-1327
 Project: Jackrabbit Oak
  Issue Type: Wish
  Components: core, mk, segmentmk
Reporter: angela
 Fix For: 1.1

 Attachments: OAK-1327.patch


 as discussed during the oak-call today, i would like to cleanup the code base 
 before we officially release OAK.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (OAK-1633) Drop custom HTTP code in oak-mk-remote

2014-04-01 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13956230#comment-13956230
 ] 

Stefan Guggisberg commented on OAK-1633:


-1 for moving to the sandbox. the code is in use and maintained. 

 Drop custom HTTP code in oak-mk-remote
 --

 Key: OAK-1633
 URL: https://issues.apache.org/jira/browse/OAK-1633
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Jukka Zitting
Priority: Critical

 The custom HTTP code in oak-mk-remote has subtle security flaws and should be 
 dropped in favor of standard servlet interfaces or something like Apache 
 HttpComponents.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (OAK-1577) H2MK: Implement refined conflict resolution for addExistingNode conflicts

2014-03-25 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-1577.


Resolution: Fixed

fixed in svn r1581319

 H2MK: Implement refined conflict resolution for addExistingNode conflicts
 -

 Key: OAK-1577
 URL: https://issues.apache.org/jira/browse/OAK-1577
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.20


 Implement refined conflict resolution for addExistingNode conflicts as 
 defined in the parent issue for the H2 MK.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Reopened] (OAK-162) Oak Layering / Remoting architecture

2014-02-27 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reopened OAK-162:
---


sorry, i  don't agree with the resolution.

 Oak Layering / Remoting architecture
 

 Key: OAK-162
 URL: https://issues.apache.org/jira/browse/OAK-162
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: core
Reporter: Stefan Guggisberg

 i had the impression that we started the oak project with a shared view of 
 the layering architecture (roughly based on the jackrabbit spi 
 abstraction/partitioning model).
 the jcr api already implies 2 layers (client/server):
 - session-related operations (transient space etc) 
   - javax.jcr.Session
 - workspace-related operations (versioning, locking, node types etc) 
   - javax.jcr.Workspace
 the jackrabbit spi represents the abstraction of the workspace-related 
 functionality and obviously lends itself to be remoted.
 here's my understanding of how the oak layering model should look like:
 1. jcr client (oak-jcr):
exposes the jcr api and implements the session-related functionality
(transient space!); delegates workspace-related operations to the 
spi (oak api)
 2. server-side repository (oak-core): exposes the spi (oak api) and 
implements the workspace-related operations; delegates 
persistence-related operations to the mk (oak api)
 3. persistence layer (oak-mk): exposes the mk api and implements
persistence operations
 the oak api and the mk api are the obvious potential remoting points.
 i see the following issues with the current oak code base:
 - the 3 layers are not properly isolated, transient space operations
   e.g. reach through all 3 layers. workspace mgmt e.g. is 
   handled on the client. if either the oak or the mk api is
   remoted this is serious potential performance problem.  
 - there's a mismatch between the spi and the current oak api
   in terms of scope/functionality; several workspace operations 
   (such as versioning, ns mgmt, node type mgmt) don't seem to 
   be reflected in the oak api.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (OAK-162) Oak Layering / Remoting architecture

2014-02-27 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13914562#comment-13914562
 ] 

Stefan Guggisberg commented on OAK-162:
---

~jukka, i think i've expressed my concerns pretty clearly in this issue. 

resolving the issue as 'not a problem', after almost 2 years of silence, is IMO 
unacceptable.

bq. This is a concern for the remoting protocol to address.

what remoting protocol?

bq. I don't see a compelling reason why such operations should be explicitly 
exposed in the API.

how would a remote jcr client (oak-jcr) access e.g. versioning  functionality 
provided by oak-core?


 Oak Layering / Remoting architecture
 

 Key: OAK-162
 URL: https://issues.apache.org/jira/browse/OAK-162
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: core
Reporter: Stefan Guggisberg

 i had the impression that we started the oak project with a shared view of 
 the layering architecture (roughly based on the jackrabbit spi 
 abstraction/partitioning model).
 the jcr api already implies 2 layers (client/server):
 - session-related operations (transient space etc) 
   - javax.jcr.Session
 - workspace-related operations (versioning, locking, node types etc) 
   - javax.jcr.Workspace
 the jackrabbit spi represents the abstraction of the workspace-related 
 functionality and obviously lends itself to be remoted.
 here's my understanding of how the oak layering model should look like:
 1. jcr client (oak-jcr):
exposes the jcr api and implements the session-related functionality
(transient space!); delegates workspace-related operations to the 
spi (oak api)
 2. server-side repository (oak-core): exposes the spi (oak api) and 
implements the workspace-related operations; delegates 
persistence-related operations to the mk (oak api)
 3. persistence layer (oak-mk): exposes the mk api and implements
persistence operations
 the oak api and the mk api are the obvious potential remoting points.
 i see the following issues with the current oak code base:
 - the 3 layers are not properly isolated, transient space operations
   e.g. reach through all 3 layers. workspace mgmt e.g. is 
   handled on the client. if either the oak or the mk api is
   remoted this is serious potential performance problem.  
 - there's a mismatch between the spi and the current oak api
   in terms of scope/functionality; several workspace operations 
   (such as versioning, ns mgmt, node type mgmt) don't seem to 
   be reflected in the oak api.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (OAK-162) Oak Layering / Remoting architecture

2014-02-27 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13914614#comment-13914614
 ] 

Stefan Guggisberg commented on OAK-162:
---

bq. The way it already does. 

can you please elaborate? i don't see any versioning related oak-core API 
methods. i neither see any remoting protocol exposing equivalent  functionality 
like batch read, batch write, checkin, copy, move, etc. 

 Oak Layering / Remoting architecture
 

 Key: OAK-162
 URL: https://issues.apache.org/jira/browse/OAK-162
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: core
Reporter: Stefan Guggisberg

 i had the impression that we started the oak project with a shared view of 
 the layering architecture (roughly based on the jackrabbit spi 
 abstraction/partitioning model).
 the jcr api already implies 2 layers (client/server):
 - session-related operations (transient space etc) 
   - javax.jcr.Session
 - workspace-related operations (versioning, locking, node types etc) 
   - javax.jcr.Workspace
 the jackrabbit spi represents the abstraction of the workspace-related 
 functionality and obviously lends itself to be remoted.
 here's my understanding of how the oak layering model should look like:
 1. jcr client (oak-jcr):
exposes the jcr api and implements the session-related functionality
(transient space!); delegates workspace-related operations to the 
spi (oak api)
 2. server-side repository (oak-core): exposes the spi (oak api) and 
implements the workspace-related operations; delegates 
persistence-related operations to the mk (oak api)
 3. persistence layer (oak-mk): exposes the mk api and implements
persistence operations
 the oak api and the mk api are the obvious potential remoting points.
 i see the following issues with the current oak code base:
 - the 3 layers are not properly isolated, transient space operations
   e.g. reach through all 3 layers. workspace mgmt e.g. is 
   handled on the client. if either the oak or the mk api is
   remoted this is serious potential performance problem.  
 - there's a mismatch between the spi and the current oak api
   in terms of scope/functionality; several workspace operations 
   (such as versioning, ns mgmt, node type mgmt) don't seem to 
   be reflected in the oak api.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (OAK-1331) MicroKernel API: clarify semantics of `read` method

2014-02-11 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-1331.


Resolution: Fixed
  Assignee: Stefan Guggisberg

fixed in svn r1567030

 MicroKernel API: clarify semantics of `read` method
 ---

 Key: OAK-1331
 URL: https://issues.apache.org/jira/browse/OAK-1331
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk, mongomk, segmentmk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
  Labels: documentation
 Fix For: 0.17


 the javadoc of {{MicroKernel#read}} currently states that 
 {quote}
 An attempt is made to read as many as {{length}} bytes, but a smaller number 
 may be read.
 {quote}
 under what conditions a smaller amount might be read is not specified. 
 with the current specification an api consumer would either have to know the 
 length of the blob in advance (i.e. by calling  {{MicroKernel#getLength}}) or 
  would need to call the {{MicroKernel#read}} method twice to make sure that 
 the blob content is fully read. 
 i suggest to clarify the contract as follows:
 Reads up to {{length}} bytes of data from the specified blob into the given 
 array of bytes where the actual number of bytes read is {{min(length, max(0, 
 blobLength - pos))}}.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (OAK-1331) MicroKernel API: clarify semantics of `read` method

2014-01-16 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-1331:
--

 Summary: MicroKernel API: clarify semantics of `read` method
 Key: OAK-1331
 URL: https://issues.apache.org/jira/browse/OAK-1331
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mongomk, segmentmk
Reporter: Stefan Guggisberg
 Fix For: 0.15


the javadoc of {{MicroKernel#read}} currently states that 

{quote}
An attempt is made to read as many as {{length}} bytes, but a smaller number 
may be read.
{quote}

under what conditions a smaller amount might be read is not specified. 

with the current specification an api consumer would either have to know the 
length of the blob in advance (i.e. by calling  {{MicroKernel#getLength}}) or  
would need to call the {{MicroKernel#read}} method twice to make sure that the 
blob content is fully read. 

i suggest to clarify the contract as follows:

Reads up to {{length}} bytes of data from the specified blob into the given 
array of bytes where the actual number of bytes read is {{min(length, max(0, 
blobLength - pos))}}.




--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (OAK-1331) MicroKernel API: clarify semantics of `read` method

2014-01-16 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-1331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-1331:
---

Component/s: mk

 MicroKernel API: clarify semantics of `read` method
 ---

 Key: OAK-1331
 URL: https://issues.apache.org/jira/browse/OAK-1331
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk, mongomk, segmentmk
Reporter: Stefan Guggisberg
 Fix For: 0.15


 the javadoc of {{MicroKernel#read}} currently states that 
 {quote}
 An attempt is made to read as many as {{length}} bytes, but a smaller number 
 may be read.
 {quote}
 under what conditions a smaller amount might be read is not specified. 
 with the current specification an api consumer would either have to know the 
 length of the blob in advance (i.e. by calling  {{MicroKernel#getLength}}) or 
  would need to call the {{MicroKernel#read}} method twice to make sure that 
 the blob content is fully read. 
 i suggest to clarify the contract as follows:
 Reads up to {{length}} bytes of data from the specified blob into the given 
 array of bytes where the actual number of bytes read is {{min(length, max(0, 
 blobLength - pos))}}.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (OAK-1203) Reset branch to previous commit

2013-11-21 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13828619#comment-13828619
 ] 

Stefan Guggisberg commented on OAK-1203:


+1 for the patch

BTW: isn't this already possible with the existing MicroKernel API
(albeit not necesseraly as efficently)?

i.e.
{code:java}
// assuming rev1 denotes the current branch revision 
// and rev0 denotes an ancestor branch revision

// get reverse diff
String reverseDiff = mk.diff(rev1, rev0, null, -1);
// commit reverse diff
String rev2 = mk.commit(, reverseDiff, rev1, null);
// the trees at revisions rev0 and rev2 are now identical
{code}

 Reset branch to previous commit
 ---

 Key: OAK-1203
 URL: https://issues.apache.org/jira/browse/OAK-1203
 Project: Jackrabbit Oak
  Issue Type: New Feature
  Components: mk, mongomk
Reporter: Marcel Reutegger
Assignee: Marcel Reutegger
 Attachments: OAK-1203.patch


 To resolve OAK-1056 and OAK-1202 there must be a way to reset a branch to a 
 previous commit. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1203) Reset branch to previous commit

2013-11-21 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13828668#comment-13828668
 ] 

Stefan Guggisberg commented on OAK-1203:


bq. That's the reason why I would like to add a dedicated method for this 
operation.

agreed

 Reset branch to previous commit
 ---

 Key: OAK-1203
 URL: https://issues.apache.org/jira/browse/OAK-1203
 Project: Jackrabbit Oak
  Issue Type: New Feature
  Components: mk, mongomk
Reporter: Marcel Reutegger
Assignee: Marcel Reutegger
 Attachments: OAK-1203.patch


 To resolve OAK-1056 and OAK-1202 there must be a way to reset a branch to a 
 previous commit. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-552) AssertionError in MicroKernel.commit()

2013-11-21 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13829019#comment-13829019
 ] 

Stefan Guggisberg commented on OAK-552:
---

bq. The test now fails for me:

fixed test in r1544209

 AssertionError in MicroKernel.commit()
 --

 Key: OAK-552
 URL: https://issues.apache.org/jira/browse/OAK-552
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig

 {code}
 mk.commit(, -\/x/\, null, null);
 {code}
 results in 
 {code}
 java.lang.AssertionError
   at 
 org.apache.jackrabbit.oak.commons.PathUtils.concat(PathUtils.java:277)
   at 
 org.apache.jackrabbit.mk.core.MicroKernelImpl.commit(MicroKernelImpl.java:437)
   at 
 org.apache.jackrabbit.mk.MicroKernelImplTest.foo(MicroKernelImplTest.java:424)
 {code}
 since according to {{PathUtils}} {{/x/}} is not a valid path. 
 The commit method should throw an {{IllegalArgumentException}} instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1200) occasional test failure in org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest

2013-11-20 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13827588#comment-13827588
 ] 

Stefan Guggisberg commented on OAK-1200:


[~dpfister], could you please have a look sometime?

 occasional test failure in 
 org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest
 --

 Key: OAK-1200
 URL: https://issues.apache.org/jira/browse/OAK-1200
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Affects Versions: 0.12
Reporter: Julian Reschke
Assignee: Dominique Pfister
 Fix For: 0.13


 Occasionally seen on W7 64bit:
 Tests in error:
   
 testConcurrentMergeGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest)
 : java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 0a9706e6ec0320c779cd6f775910826e79c97f58
 ---
 Test set: org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest
 ---
 Tests run: 5, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 11.377 sec 
  FAILURE!
 testConcurrentMergeGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest)
   Time elapsed: 0.151 sec   ERROR!
 org.apache.jackrabbit.mk.api.MicroKernelException: 
 java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 0a9706e6ec0320c779cd6f775910826e79c97f58
   at 
 org.apache.jackrabbit.mk.core.MicroKernelImpl.merge(MicroKernelImpl.java:557)
   at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest.testConcurrentMergeGC(DefaultRevisionStoreTest.java:193)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at 
 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
   at 
 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
   at 
 org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
   at 
 org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
   at 
 org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
   at 
 org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
   at 
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
   at 
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
   at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
   at 
 org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
   at 
 org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
   at 
 org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at 
 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
   at 
 org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
   at 
 org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
   at 
 org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
   at 
 org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
 Caused by: java.lang.RuntimeException: 
 java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 0a9706e6ec0320c779cd6f775910826e79c97f58
   at 
 org.apache.jackrabbit.mk.model.TraversingNodeDiffHandler.childNodeChanged(TraversingNodeDiffHandler.java:53)
   at 
 

[jira] [Reopened] (OAK-587) DefaultRevisionStoreTest.testConcurrentGC fails every now and then.

2013-11-19 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reopened OAK-587:
---


reopening since test still occur

 DefaultRevisionStoreTest.testConcurrentGC fails every now and then.
 ---

 Key: OAK-587
 URL: https://issues.apache.org/jira/browse/OAK-587
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: angela
Assignee: Stefan Guggisberg
 Fix For: 0.11

 Attachments: OAK-587_aggressive_test.patch


 i marked the failing test with @Ignore.
 it would be nice though if someone could investigate why the test is failing.
 thanks.
 Tests in error: 
   testConcurrentGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest): 
 java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 78a45769aec95b5abf0a8d6b75d3ff2648069bd1



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-587) DefaultRevisionStoreTest.testConcurrentGC fails every now and then.

2013-11-19 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13826630#comment-13826630
 ] 

Stefan Guggisberg commented on OAK-587:
---

i wasn't able to reproduce the issue anymore on my machine using the aggressive 
GC test.
obviously the issue still exists. :(

~dpfister, could you please have a look sometime?

 DefaultRevisionStoreTest.testConcurrentGC fails every now and then.
 ---

 Key: OAK-587
 URL: https://issues.apache.org/jira/browse/OAK-587
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: angela
Assignee: Stefan Guggisberg
 Fix For: 0.11

 Attachments: OAK-587_aggressive_test.patch


 i marked the failing test with @Ignore.
 it would be nice though if someone could investigate why the test is failing.
 thanks.
 Tests in error: 
   testConcurrentGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest): 
 java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 78a45769aec95b5abf0a8d6b75d3ff2648069bd1



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Assigned] (OAK-587) DefaultRevisionStoreTest.testConcurrentGC fails every now and then.

2013-11-19 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-587:
-

Assignee: Dominique Pfister  (was: Stefan Guggisberg)

 DefaultRevisionStoreTest.testConcurrentGC fails every now and then.
 ---

 Key: OAK-587
 URL: https://issues.apache.org/jira/browse/OAK-587
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: angela
Assignee: Dominique Pfister
 Fix For: 0.11

 Attachments: OAK-587_aggressive_test.patch


 i marked the failing test with @Ignore.
 it would be nice though if someone could investigate why the test is failing.
 thanks.
 Tests in error: 
   testConcurrentGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest): 
 java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 78a45769aec95b5abf0a8d6b75d3ff2648069bd1



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (OAK-587) DefaultRevisionStoreTest.testConcurrentGC fails every now and then.

2013-11-15 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-587.
---

Resolution: Fixed

fixed in svn rev. 1542292

 DefaultRevisionStoreTest.testConcurrentGC fails every now and then.
 ---

 Key: OAK-587
 URL: https://issues.apache.org/jira/browse/OAK-587
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: angela
Assignee: Stefan Guggisberg
 Fix For: 0.12

 Attachments: OAK-587_aggressive_test.patch


 i marked the failing test with @Ignore.
 it would be nice though if someone could investigate why the test is failing.
 thanks.
 Tests in error: 
   testConcurrentGC(org.apache.jackrabbit.mk.store.DefaultRevisionStoreTest): 
 java.util.concurrent.ExecutionException: 
 org.apache.jackrabbit.mk.store.NotFoundException: 
 78a45769aec95b5abf0a8d6b75d3ff2648069bd1



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Assigned] (OAK-504) DefaultRevisionStore: Exception occurred in GC cycle: NotFoundException

2013-11-15 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-504:
-

Assignee: Stefan Guggisberg

 DefaultRevisionStore: Exception occurred in GC cycle: NotFoundException
 ---

 Key: OAK-504
 URL: https://issues.apache.org/jira/browse/OAK-504
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Jukka Zitting
Assignee: Stefan Guggisberg

 I'm seeing lots of exceptions like the following when running Oak with the 
 default MK for a longer time:
 {noformat}
 org.apache.jackrabbit.mk.store.DefaultRevisionStore Exception occurred in GC 
 cycle org.apache.jackrabbit.mk.store.NotFoundException: 
 c29d5b5b12291a2a4f18be8d4f7fe1a70136eb57
 at 
 org.apache.jackrabbit.mk.persistence.H2Persistence.readNode(H2Persistence.java:155)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.getNode(DefaultRevisionStore.java:366)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (OAK-504) DefaultRevisionStore: Exception occurred in GC cycle: NotFoundException

2013-11-15 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-504.
---

   Resolution: Fixed
Fix Version/s: 0.12

fixed through resolution of OAK-587.

 DefaultRevisionStore: Exception occurred in GC cycle: NotFoundException
 ---

 Key: OAK-504
 URL: https://issues.apache.org/jira/browse/OAK-504
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Jukka Zitting
Assignee: Stefan Guggisberg
 Fix For: 0.12


 I'm seeing lots of exceptions like the following when running Oak with the 
 default MK for a longer time:
 {noformat}
 org.apache.jackrabbit.mk.store.DefaultRevisionStore Exception occurred in GC 
 cycle org.apache.jackrabbit.mk.store.NotFoundException: 
 c29d5b5b12291a2a4f18be8d4f7fe1a70136eb57
 at 
 org.apache.jackrabbit.mk.persistence.H2Persistence.readNode(H2Persistence.java:155)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.getNode(DefaultRevisionStore.java:366)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 at 
 org.apache.jackrabbit.mk.store.DefaultRevisionStore.markNode(DefaultRevisionStore.java:696)
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (OAK-436) apache.jackrabbit.mk.store.NotFoundException

2013-11-15 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-436.
---

Resolution: Fixed

fixed through resolution of OAK-587.

 apache.jackrabbit.mk.store.NotFoundException
 

 Key: OAK-436
 URL: https://issues.apache.org/jira/browse/OAK-436
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.12


 First 
 {code}
 09.11.2012 11:42:46.941 *ERROR* [0:0:0:0:0:0:0:1%0 [1352460476169] POST 
 /crx/packmgr/service/script.html/etc/packages/day/cq560/product/cq-content-5.6.0.SNAPSHOT.20121109.zip
  HTTP/1.1] com.day.jcr.vault.packaging.impl.ZipVaultPackage Error during 
 install. org.apache.jackrabbit.mk.api.MicroKernelException: 
 java.lang.RuntimeException: Unexpected error
   at 
 org.apache.jackrabbit.mk.core.MicroKernelImpl.nodeExists(MicroKernelImpl.java:321)
   at 
 org.apache.jackrabbit.oak.kernel.KernelNodeState.getChildNode(KernelNodeState.java:168)
   at 
 org.apache.jackrabbit.oak.spi.state.AbstractNodeState.hasChildNode(AbstractNodeState.java:63)
   at 
 org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.child(MemoryNodeBuilder.java:422)
   at 
 org.apache.jackrabbit.oak.core.TreeImpl.getNodeBuilder(TreeImpl.java:415)
   at org.apache.jackrabbit.oak.core.TreeImpl.isRemoved(TreeImpl.java:213)
   at org.apache.jackrabbit.oak.core.TreeImpl.getStatus(TreeImpl.java:220)
   at 
 org.apache.jackrabbit.oak.core.TreeImpl$NodeLocation.getStatus(TreeImpl.java:637)
   at 
 org.apache.jackrabbit.oak.jcr.ItemDelegate.isStale(ItemDelegate.java:86)
   at org.apache.jackrabbit.oak.jcr.ItemImpl.checkStatus(ItemImpl.java:159)
   at org.apache.jackrabbit.oak.jcr.ItemImpl.getPath(ItemImpl.java:76)
   at org.apache.jackrabbit.oak.jcr.NodeImpl.getPath(NodeImpl.java:89)
   at 
 com.day.jcr.vault.fs.impl.io.DocViewSAXImporter.endElement(DocViewSAXImporter.java:1052)
   at 
 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
   at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
   at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2939)
   at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
   at 
 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
   at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
   at 
 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
   at 
 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
   at 
 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
   at 
 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
   at 
 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
   at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
   at 
 com.day.jcr.vault.fs.impl.io.GenericArtifactHandler.accept(GenericArtifactHandler.java:102)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:852)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:760)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:797)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:797)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:797)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:797)
   at com.day.jcr.vault.fs.io.Importer.commit(Importer.java:797)
   at com.day.jcr.vault.fs.io.Importer.run(Importer.java:420)
   at 
 com.day.jcr.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:359)
   at 
 com.day.jcr.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:364)
   at 
 com.day.jcr.vault.packaging.impl.JcrPackageImpl.install(JcrPackageImpl.java:337)
   at 
 com.day.crx.packaging.impl.J2EEPackageManager.consoleInstall(J2EEPackageManager.java:327)
   at 
 com.day.crx.packaging.impl.J2EEPackageManager.doPost(J2EEPackageManager.java:173)
   at 
 com.day.crx.packaging.impl.PackageManagerServlet.doPost(PackageManagerServlet.java:144)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at 
 

[jira] [Resolved] (OAK-567) DiffBuilder performance problem

2013-11-07 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-567.
---

Resolution: Fixed
  Assignee: Stefan Guggisberg

fixed through resolution of OAK-997

 DiffBuilder performance problem
 ---

 Key: OAK-567
 URL: https://issues.apache.org/jira/browse/OAK-567
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Thomas Mueller
Assignee: Stefan Guggisberg
 Fix For: 0.13

 Attachments: OAK-567.patch


 The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
 uses:
 {code}
 HashMapNodeState, String
 {code}
 and at the same time
 {code}
 class AbstractNodeState implements NodeState {
 /**
  * Returns a hash code that's compatible with how the
  * {@link #equals(Object)} method is implemented. The current
  * implementation simply returns zero for everything since
  * {@link NodeState} instances are not intended for use as hash keys.
  *
  * @return hash code
  */
 @Override
 public int hashCode() {
 return 0;
 }
 }
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (OAK-277) identical nodes with different content hash ids

2013-11-07 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-277.
---

Resolution: Duplicate

fixed through resolution of OAK-1017

 identical nodes with different content hash ids
 ---

 Key: OAK-277
 URL: https://issues.apache.org/jira/browse/OAK-277
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
Priority: Minor

 the current implementation internally uses a HashMap to represent the 
 properties of a node and child node entries collections.
 the sha-1 content hash is based on the byte stream serialization of the node 
 state. properties are serialized by iterating over the entrySet collection of 
 the HashMap. since HashMap doesn't guarantee any specific iteration order 
 it's possible that 2 HashMaps containing the same mappings 
 (map1.equals(maps2) == true) return the entries in different order, thus 
 resulting in different content hashes.
 the iteration order needs obviously to be normalized when serializing the 
 entries.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Reopened] (OAK-210) granularity of persisted data

2013-11-05 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reopened OAK-210:
---


i don't agree with the resolution 'Incomplete'. 

the description is IMO pretty clear.

 granularity of persisted data
 -

 Key: OAK-210
 URL: https://issues.apache.org/jira/browse/OAK-210
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg

 the current persistence granularity is _single nodes_ (a node consists of 
 properties and child node information). 
 instead of storing/retrieving single nodes it would IMO make sense to store 
 subtree aggregates of specific nodes. the choice of granularity could be 
 based on simple filter criteria (e.g. property value).
 dynamic persistence granularity would help reducing the number of records and 
 r/w operations on the underlying store, thus improving performance.  



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1126) Same node and property name support

2013-11-05 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13813766#comment-13813766
 ] 

Stefan Guggisberg commented on OAK-1126:


bq. AFAICT the only change to the JSOP format would be to adjust the addNode 
syntax to use the :children mechanism for child nodes. 

that's what i meant by json_diff format changes. it's IMO a drastic change 
since it makes importing arbitrary JSON impossible (or at least very awkward). 

 Same node and property name support
 ---

 Key: OAK-1126
 URL: https://issues.apache.org/jira/browse/OAK-1126
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: core, doc, jcr
Reporter: Tobias Bocanegra
 Attachments: 0001-OAK-1126-Same-node-and-property-name-support.patch, 
 0002-OAK-1126-Same-node-and-property-name-support.patch, OAK-1126.patch


 The initial MK abstraction mandated that the nodes and properties share the 
 same namespace 
 (http://wiki.apache.org/jackrabbit/RepositoryMicroKernel#Data%20Model). This 
 is a regression from Jackrabbit 2.x, which supports same name nodes and 
 properties (SNNP).
 OTOH, the NodeStores can easily support SNNP and with proper escaping, the 
 MKs can also support it.
 We should try to keep the support for SNNP in order to keep backward 
 compatibility for existing content, and also keep the support for importing 
 XML documents with same attribute and element names.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1126) Same node and property name support

2013-11-05 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13813798#comment-13813798
 ] 

Stefan Guggisberg commented on OAK-1126:


bq. This was never a use case. From the beginning on oak-core was deemed to be 
the only client to the MicroKernel ever.

i beg to differ. the MicroKernel API was designed to be portable from scratch. 
therefore it's obvious that it's possible to implement and use it in different 
languages/stacks (e.g. c, nodejs, etc).

 Same node and property name support
 ---

 Key: OAK-1126
 URL: https://issues.apache.org/jira/browse/OAK-1126
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: core, doc, jcr
Reporter: Tobias Bocanegra
 Attachments: 0001-OAK-1126-Same-node-and-property-name-support.patch, 
 0002-OAK-1126-Same-node-and-property-name-support.patch, OAK-1126.patch


 The initial MK abstraction mandated that the nodes and properties share the 
 same namespace 
 (http://wiki.apache.org/jackrabbit/RepositoryMicroKernel#Data%20Model). This 
 is a regression from Jackrabbit 2.x, which supports same name nodes and 
 properties (SNNP).
 OTOH, the NodeStores can easily support SNNP and with proper escaping, the 
 MKs can also support it.
 We should try to keep the support for SNNP in order to keep backward 
 compatibility for existing content, and also keep the support for importing 
 XML documents with same attribute and element names.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-210) granularity of persisted data

2013-11-05 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13813972#comment-13813972
 ] 

Stefan Guggisberg commented on OAK-210:
---

bq. Fair enough. Do you still intend to work on this (it's been open for over a 
year)? If not, I suggest to resolve as Won't Fix.

yes, i intend to work on this. however, i cannot commit a specific timeline. i 
prefer to keep this issue open.


 granularity of persisted data
 -

 Key: OAK-210
 URL: https://issues.apache.org/jira/browse/OAK-210
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg

 the current persistence granularity is _single nodes_ (a node consists of 
 properties and child node information). 
 instead of storing/retrieving single nodes it would IMO make sense to store 
 subtree aggregates of specific nodes. the choice of granularity could be 
 based on simple filter criteria (e.g. property value).
 dynamic persistence granularity would help reducing the number of records and 
 r/w operations on the underlying store, thus improving performance.  



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1126) Same node and property name support

2013-11-04 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13812930#comment-13812930
 ] 

Stefan Guggisberg commented on OAK-1126:


bq. If we do apply the patch, we should also update relevant parts of the 
MicroKernel API and adjust the NodeStore documentation accordingly.

-1 for changing the MicroKernel API until we have a clear picture of the full 
impact of such API changes.
the change would e.g. also affect the commit method and the json_diff format.  
those changes, if we agree on them, need to be carefully documented.

 Same node and property name support
 ---

 Key: OAK-1126
 URL: https://issues.apache.org/jira/browse/OAK-1126
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: core, doc, jcr
Reporter: Tobias Bocanegra
 Attachments: OAK-1126.patch


 The initial MK abstraction mandated that the nodes and properties share the 
 same namespace 
 (http://wiki.apache.org/jackrabbit/RepositoryMicroKernel#Data%20Model). This 
 is a regression from Jackrabbit 2.x, which supports same name nodes and 
 properties (SNNP).
 OTOH, the NodeStores can easily support SNNP and with proper escaping, the 
 MKs can also support it.
 We should try to keep the support for SNNP in order to keep backward 
 compatibility for existing content, and also keep the support for importing 
 XML documents with same attribute and element names.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (OAK-1126) Same node and property name support

2013-10-31 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13810184#comment-13810184
 ] 

Stefan Guggisberg commented on OAK-1126:


my main concern regarding SNNP is that it breaks the intuitive 1:1 JSON 
representation of repository content. 
artificial intermediary objects like e.g. :children are IMO non-intuitive and 
lead to awkward client code on the
JSON consumer side. 

as discussed on the list:
http://markmail.org/message/procpdcyctcibxdt 

 Same node and property name support
 ---

 Key: OAK-1126
 URL: https://issues.apache.org/jira/browse/OAK-1126
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: core, doc, jcr
Reporter: Tobias Bocanegra
 Attachments: OAK-1126.patch


 The initial MK abstraction mandated that the nodes and properties share the 
 same namespace 
 (http://wiki.apache.org/jackrabbit/RepositoryMicroKernel#Data%20Model). This 
 is a regression from Jackrabbit 2.x, which supports same name nodes and 
 properties (SNNP).
 OTOH, the NodeStores can easily support SNNP and with proper escaping, the 
 MKs can also support it.
 We should try to keep the support for SNNP in order to keep backward 
 compatibility for existing content, and also keep the support for importing 
 XML documents with same attribute and element names.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (OAK-997) cleanup codebase: remove unneeded internal abstraction

2013-09-04 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-997?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-997.
---

   Resolution: Fixed
Fix Version/s: 0.9

done in rev. 1520046

 cleanup codebase: remove unneeded internal abstraction
 --

 Key: OAK-997
 URL: https://issues.apache.org/jira/browse/OAK-997
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
 Fix For: 0.9


 the internal tree abstraction hides an essential implementation detail 
 (content-hash based identifiers) from the very implementation, leading to 
 confusing and sometimes awkward code. furthermore there's a considerable 
 amount of code duplication.
 this internal tree abstraction should be removed for the sake of a cleaner 
 codebase.

--
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


[jira] [Created] (OAK-997) cleanup codebase: remove unneeded internal abstraction

2013-09-04 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-997:
-

 Summary: cleanup codebase: remove unneeded internal abstraction
 Key: OAK-997
 URL: https://issues.apache.org/jira/browse/OAK-997
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg


the internal tree abstraction hides an essential implementation detail 
(content-hash based identifiers) from the very implementation, leading to 
confusing and sometimes awkward code. furthermore there's a considerable amount 
of code duplication.

this internal tree abstraction should be removed for the sake of a cleaner 
codebase.

--
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


[jira] [Resolved] (OAK-979) MicroKernel.diff() returns incomplete JSON when moves are involved (H2)

2013-09-02 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-979.
---

   Resolution: Fixed
Fix Version/s: 0.9
 Assignee: Stefan Guggisberg

fixed in revision 1519368.

 MicroKernel.diff() returns incomplete JSON when moves are involved (H2)
 ---

 Key: OAK-979
 URL: https://issues.apache.org/jira/browse/OAK-979
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.9


 Given the base revision 
 {code}
 {a:{b:{}}
 {code}
 and the head revision 
 {code}
 {a:{c:{},d:{}}
 {code}
 {{MicroKernel.diff}} will miss one of the added nodes {{c}} or {{d}}. 
 This only affects the H2 based MicroKernel

--
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


[jira] [Created] (OAK-987) Implement the MicroKernel API

2013-08-30 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-987:
-

 Summary: Implement the MicroKernel API
 Key: OAK-987
 URL: https://issues.apache.org/jira/browse/OAK-987
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: segmentmk
Reporter: Stefan Guggisberg




--
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


[jira] [Assigned] (OAK-976) MicroKernel.diff() returns invalid JSON (H2)

2013-08-24 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-976:
-

Assignee: Stefan Guggisberg

 MicroKernel.diff() returns invalid JSON (H2)
 

 Key: OAK-976
 URL: https://issues.apache.org/jira/browse/OAK-976
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg

 {{MicroKernel.diff()}} returns sometimes
 {code}
 ^/root/N2352
 /root/N2727:/root/N2733
 {code}
 which should be
 {code}
 ^/root/N2352:{}
 /root/N2727:/root/N2733
 {code}
 This only happens with the H2 based MicroKernel. MongoMK is fine. 

--
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


[jira] [Resolved] (OAK-976) MicroKernel.diff() returns invalid JSON (H2)

2013-08-24 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-976.
---

   Resolution: Fixed
Fix Version/s: 0.9

fixed in svn r1517125.

 MicroKernel.diff() returns invalid JSON (H2)
 

 Key: OAK-976
 URL: https://issues.apache.org/jira/browse/OAK-976
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.9


 {{MicroKernel.diff()}} returns sometimes
 {code}
 ^/root/N2352
 /root/N2727:/root/N2733
 {code}
 which should be
 {code}
 ^/root/N2352:{}
 /root/N2727:/root/N2733
 {code}
 This only happens with the H2 based MicroKernel. MongoMK is fine. 

--
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


[jira] [Commented] (OAK-638) Avoid branch/merge for small commits

2013-02-19 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13581230#comment-13581230
 ] 

Stefan Guggisberg commented on OAK-638:
---

bq. This pretty much means we should push down handling of the transient space 
to the MK implementation. I don't think the MK was designed with this in mind. 
My understanding so far is that we handle transient operations in oak-jcr (to a 
certain amount: RootImpl#PURGE_LIMIT) and persist those changes to a branch 
once over the limit.

+1, that's my understanding as well (see OAK-162).

 Avoid branch/merge for small commits
 

 Key: OAK-638
 URL: https://issues.apache.org/jira/browse/OAK-638
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: core
Reporter: Marcel Reutegger
Priority: Minor

 The branch/merge features on the MicroKernel were initially introduced to 
 stage changes of large commits. Currently oak-core creates a branch even for 
 small changes like updating a property. I think this introduces quite some 
 overhead for scenarios with highly concurrent updates. E.g. think of a 
 twitter like application or a forum with comments. Well, basically user 
 generated content. These update tend to be rather small (couple of nodes) but 
 frequent and concurrent.
 Right now oak-core always does:
 - MK.branch()
 - MK.commit() to branch
 - MK.merge()
 For small commits, it ideally should do:
 - MK.commit() to trunk

--
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


[jira] [Commented] (OAK-567) DiffBuilder performance problem

2013-01-18 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13557054#comment-13557054
 ] 

Stefan Guggisberg commented on OAK-567:
---

bq. Couldn't the NodeState implementations in question (StoreNodeAsState 
AFAICS) just use their id to implement hashCode()?

indeed, good catch!

 DiffBuilder performance problem
 ---

 Key: OAK-567
 URL: https://issues.apache.org/jira/browse/OAK-567
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Thomas Mueller
 Attachments: OAK-567.patch


 The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
 uses:
 {code}
 HashMapNodeState, String
 {code}
 and at the same time
 {code}
 class AbstractNodeState implements NodeState {
 /**
  * Returns a hash code that's compatible with how the
  * {@link #equals(Object)} method is implemented. The current
  * implementation simply returns zero for everything since
  * {@link NodeState} instances are not intended for use as hash keys.
  *
  * @return hash code
  */
 @Override
 public int hashCode() {
 return 0;
 }
 }
 {code}

--
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


[jira] [Commented] (OAK-567) DiffBuilder performance problem

2013-01-18 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13557085#comment-13557085
 ] 

Stefan Guggisberg commented on OAK-567:
---

the problem IMO is that DiffBuilder uses the tree abstraction (NodeState et al, 
OAK-3) instead of StoredNode as in the original implementation. NodeState hides 
the internal content-hash identifier which is central feature of this 
microkernel implementation.  

i'd rather change NodeBuilder to use the internal StoredNode objects again. 
alternatively, we could provide another implementation leveraging the 
content-hash identifiers of stored nodes.   

 DiffBuilder performance problem
 ---

 Key: OAK-567
 URL: https://issues.apache.org/jira/browse/OAK-567
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Thomas Mueller
 Attachments: OAK-567.patch


 The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
 uses:
 {code}
 HashMapNodeState, String
 {code}
 and at the same time
 {code}
 class AbstractNodeState implements NodeState {
 /**
  * Returns a hash code that's compatible with how the
  * {@link #equals(Object)} method is implemented. The current
  * implementation simply returns zero for everything since
  * {@link NodeState} instances are not intended for use as hash keys.
  *
  * @return hash code
  */
 @Override
 public int hashCode() {
 return 0;
 }
 }
 {code}

--
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


[jira] [Commented] (OAK-567) DiffBuilder performance problem

2013-01-17 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13556379#comment-13556379
 ] 

Stefan Guggisberg commented on OAK-567:
---

bq. The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
uses:
bq. HashMapNodeState, String

i agree that needs to be fixed. i've refactored the DiffBuilder code from the 
mk diff method implementation into a separate class. the original 
implementation used the the (content hash) id's as keys (as documented inline).
however, during the refactoring i had to change to using NodeState instances 
(from the tree abstraction), which don't expose the id... :(

ideally the DiffBuilder should use the id's again.



 DiffBuilder performance problem
 ---

 Key: OAK-567
 URL: https://issues.apache.org/jira/browse/OAK-567
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Thomas Mueller

 The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
 uses:
 {code}
 HashMapNodeState, String
 {code}
 and at the same time
 {code}
 class AbstractNodeState implements NodeState {
 /**
  * Returns a hash code that's compatible with how the
  * {@link #equals(Object)} method is implemented. The current
  * implementation simply returns zero for everything since
  * {@link NodeState} instances are not intended for use as hash keys.
  *
  * @return hash code
  */
 @Override
 public int hashCode() {
 return 0;
 }
 }
 {code}

--
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


[jira] [Comment Edited] (OAK-567) DiffBuilder performance problem

2013-01-17 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13556379#comment-13556379
 ] 

Stefan Guggisberg edited comment on OAK-567 at 1/17/13 5:10 PM:


bq. The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
uses:
bq. HashMapNodeState, String

i agree that needs to be fixed. i've refactored the DiffBuilder code from the 
mk diff method implementation into a separate class. the original 
implementation used the (content hash) id's as keys (as documented inline).
however, during the refactoring i had to change to using NodeState instances 
(from the tree abstraction), which don't expose the id... :(

ideally the DiffBuilder should use the id's again.



  was (Author: stefan@jira):
bq. The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow 
because it uses:
bq. HashMapNodeState, String

i agree that needs to be fixed. i've refactored the DiffBuilder code from the 
mk diff method implementation into a separate class. the original 
implementation used the the (content hash) id's as keys (as documented inline).
however, during the refactoring i had to change to using NodeState instances 
(from the tree abstraction), which don't expose the id... :(

ideally the DiffBuilder should use the id's again.


  
 DiffBuilder performance problem
 ---

 Key: OAK-567
 URL: https://issues.apache.org/jira/browse/OAK-567
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Thomas Mueller

 The org.apache.jackrabbit.mk.model.tree.DiffBuilder is very slow because it 
 uses:
 {code}
 HashMapNodeState, String
 {code}
 and at the same time
 {code}
 class AbstractNodeState implements NodeState {
 /**
  * Returns a hash code that's compatible with how the
  * {@link #equals(Object)} method is implemented. The current
  * implementation simply returns zero for everything since
  * {@link NodeState} instances are not intended for use as hash keys.
  *
  * @return hash code
  */
 @Override
 public int hashCode() {
 return 0;
 }
 }
 {code}

--
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


[jira] [Resolved] (OAK-543) PutTokenImpl not thread safe

2013-01-09 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-543.
---

   Resolution: Fixed
Fix Version/s: 0.6

fixed in svn r1430761.

thanks for providing a patch!

 PutTokenImpl not thread safe
 

 Key: OAK-543
 URL: https://issues.apache.org/jira/browse/OAK-543
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.6

 Attachments: OAK-543.patch


 {{PutTokenImpl}} uses prefix increment on a static member to generate 
 presumably unique identifiers. Prefix increment is not atomic though which 
 might result in non unique ids being generated. 

--
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


[jira] [Updated] (OAK-366) MongoDB microkernal integration with OSGi

2013-01-08 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-366:
--

Component/s: (was: mk)
 mongomk

 MongoDB microkernal integration with OSGi
 -

 Key: OAK-366
 URL: https://issues.apache.org/jira/browse/OAK-366
 Project: Jackrabbit Oak
  Issue Type: Sub-task
  Components: mongomk
Reporter: Chetan Mehrotra
Assignee: Chetan Mehrotra
  Labels: osgi
   Original Estimate: 2m
  Remaining Estimate: 2m

 Need to convert the oak-mongomk module to an OSGi bundle and expose the 
 MongoMicroKernel as OSGi service

--
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


[jira] [Updated] (OAK-351) Inconsistency issue when committing a new node under an old parent

2013-01-08 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-351:
--

Component/s: (was: mk)
 mongomk

 Inconsistency issue when committing a new node under an old parent
 --

 Key: OAK-351
 URL: https://issues.apache.org/jira/browse/OAK-351
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mongomk
 Environment: all
Reporter: Tudor Rogoz
 Attachments: OAK-351-automatedTest.patch


 Commit the following node structure:
 Commit 1: /a
 Commit 2: /a/b
 Commit 3: /a/b/c
 Commit 4: /a/d
 Commit will fail with the following exception:
 java.lang.RuntimeException: No such parent: a
 Note 1: 
 After the commit 3 if I run the following code
 NodeExistsCommandMongo command2 = new NodeExistsCommandMongo(
   mongoConnection, /a, null);
   boolean exists = command2.execute();
   
 exist will be true, so the node is visible for NodeExistsCommandMongo class.
 Note 2:
 I created an automated test for this issue 
 CommitCommandMongoTest.commitNodeOldParent

--
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


[jira] [Updated] (OAK-333) 1000 character path limit in MongoMK

2013-01-08 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-333:
--

Component/s: (was: mk)

 1000 character path limit in MongoMK
 

 Key: OAK-333
 URL: https://issues.apache.org/jira/browse/OAK-333
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mongomk
Affects Versions: 0.5
Reporter: Mete Atamel
Assignee: Mete Atamel
Priority: Minor
 Attachments: OAK-333.patch


 In an infinite loop try to add nodes one under another to have N0/N1/N2...NN. 
 At some point, the current parent node will not be found and the current 
 commit will fail. I think this happens when the path length exceeds 1000 
 characters. Is this enough for a path? I was able to create this way only 222 
 levels in the tree (and my node names were really short N1, N2 ...)
 There's an automated tests for this: NodeExistsCommandMongoTest.testTreeDepth

--
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


[jira] [Assigned] (OAK-543) PutTokenImpl not thread safe

2013-01-08 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-543:
-

Assignee: Stefan Guggisberg

 PutTokenImpl not thread safe
 

 Key: OAK-543
 URL: https://issues.apache.org/jira/browse/OAK-543
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Attachments: OAK-543.patch


 {{PutTokenImpl}} uses prefix increment on a static member to generate 
 presumably unique identifiers. Prefix increment is not atomic though which 
 might result in non unique ids being generated. 

--
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


[jira] [Assigned] (OAK-539) Wrong compareTo in micro-kernel Id class

2013-01-04 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-539?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-539:
-

Assignee: Stefan Guggisberg

 Wrong compareTo in micro-kernel Id class
 

 Key: OAK-539
 URL: https://issues.apache.org/jira/browse/OAK-539
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Affects Versions: 0.6
Reporter: Alex Rodriguez
Assignee: Stefan Guggisberg
 Attachments: 67384d1ea6969347b87a8ec7a4f8dcc972f543a7.patch.txt


 CompareTo method in Id class fails in some cases.
 {code} 
 // this works
 final Id id1 = Id.fromString( 0007 );
 final Id id2 = Id.fromString( 000c );
 assertTrue( id1 +  should be less than  + id2, id1.compareTo( id2 )  0 );
 // but this doesn't
 final Id id1 = Id.fromString( 0070 );
 final Id id2 = Id.fromString( 00c0 );
 assertTrue( id1 +  should be less than  + id2, id1.compareTo( id2 )  0 );
 {code} 

--
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


[jira] [Assigned] (OAK-532) Inconsistent journal with concurrent updates

2012-12-18 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-532:
-

Assignee: Stefan Guggisberg

 Inconsistent journal with concurrent updates
 

 Key: OAK-532
 URL: https://issues.apache.org/jira/browse/OAK-532
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: mk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg

 As discussed on the list [1] the journal might be inconsistent when merges 
 are involved. 
 [1] http://markmail.org/message/4xwfwbax3kpoysbp

--
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


[jira] [Assigned] (OAK-501) Add journal support for branches

2012-12-12 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-501:
-

Assignee: Stefan Guggisberg

 Add journal support for branches
 

 Key: OAK-501
 URL: https://issues.apache.org/jira/browse/OAK-501
 Project: Jackrabbit Oak
  Issue Type: New Feature
  Components: mk, mongomk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg

 Currently the Microkernel does not support {{getJournal}} calls for branch 
 revisions. In order to make progress on OAK-464 [1], we would need that 
 support.
 [1] 
 https://issues.apache.org/jira/browse/OAK-464?focusedCommentId=13528947page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13528947

--
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


[jira] [Resolved] (OAK-501) Add journal support for branches

2012-12-12 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-501.
---

   Resolution: Fixed
Fix Version/s: 0.6

fixed in svn r1420717

the following ranges are are additionally supported:

- from/to within same private branch
- from an ancestor head to a descendent private branch rev

 Add journal support for branches
 

 Key: OAK-501
 URL: https://issues.apache.org/jira/browse/OAK-501
 Project: Jackrabbit Oak
  Issue Type: New Feature
  Components: mk, mongomk
Reporter: Michael Dürig
Assignee: Stefan Guggisberg
 Fix For: 0.6


 Currently the Microkernel does not support {{getJournal}} calls for branch 
 revisions. In order to make progress on OAK-464 [1], we would need that 
 support.
 [1] 
 https://issues.apache.org/jira/browse/OAK-464?focusedCommentId=13528947page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13528947

--
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


[jira] [Assigned] (OAK-468) Identifier- or hash-based access in the MicroKernel

2012-11-23 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg reassigned OAK-468:
-

Assignee: Stefan Guggisberg

 Identifier- or hash-based access in the MicroKernel
 ---

 Key: OAK-468
 URL: https://issues.apache.org/jira/browse/OAK-468
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Jukka Zitting
Assignee: Stefan Guggisberg
 Attachments: 
 0001-OAK-468-Identifier-or-hash-based-access-in-the-Micro.patch


 As discussed on oak-dev@ (http://markmail.org/message/nnsyvzfhy2k26xvb), it 
 would be useful for the MicroKernel to be able to optionally provide 
 identifier- or hash-based access to content as an alternative to always 
 addressing content by full path.

--
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


[jira] [Resolved] (OAK-468) Identifier- or hash-based access in the MicroKernel

2012-11-23 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg resolved OAK-468.
---

Resolution: Fixed

committed API changes, MicroKernelImpl support and adapted integration tests 
in svn r1412898

 Identifier- or hash-based access in the MicroKernel
 ---

 Key: OAK-468
 URL: https://issues.apache.org/jira/browse/OAK-468
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Jukka Zitting
Assignee: Stefan Guggisberg
 Attachments: 
 0001-OAK-468-Identifier-or-hash-based-access-in-the-Micro.patch


 As discussed on oak-dev@ (http://markmail.org/message/nnsyvzfhy2k26xvb), it 
 would be useful for the MicroKernel to be able to optionally provide 
 identifier- or hash-based access to content as an alternative to always 
 addressing content by full path.

--
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


[jira] [Created] (OAK-384) get rid of add-property json diff syntax

2012-10-18 Thread Stefan Guggisberg (JIRA)
Stefan Guggisberg created OAK-384:
-

 Summary: get rid of add-property json diff syntax
 Key: OAK-384
 URL: https://issues.apache.org/jira/browse/OAK-384
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: mk
Reporter: Stefan Guggisberg
Assignee: Stefan Guggisberg
Priority: Minor


as discussed on the oak-dev list [0] i propose to remove/disallow the 
add-property json diff syntax, i.e. +/some/prop:some val

the set-property syntax (^/some/prop:some val) is used to modify an 
existing property or create one if doesn't exist yet.

[0] http://apache.markmail.org/thread/3mc3bah2evvfd3ut

--
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