[jira] [Comment Edited] (OAK-5055) o.a.j.o.s.s.RevisionGC returns status that don't comply with the API

2016-11-03 Thread JIRA

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

Michael Dürig edited comment on OAK-5055 at 11/3/16 4:14 PM:
-

I like this approach. As a small improvement I think we should bass the 
management operation to e.g. {{initiated}} instead of just the id. 

I will rework the patch to that respect and apply. Unless you have objections. 


was (Author: mduerig):
I like this approach. As a small improvement I think we should bass the 
management operation to e.g. {{initiated}} instead of just the id. 

> o.a.j.o.s.s.RevisionGC returns status that don't comply with the API
> 
>
> Key: OAK-5055
> URL: https://issues.apache.org/jira/browse/OAK-5055
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.5.12
>Reporter: Timothee Maret
>Assignee: Timothee Maret
> Fix For: 1.5.13
>
> Attachments: OAK-5055.patch, OAK-5055.patch, OAK-5055.patch
>
>
> According to the API [0], the method {{RevisionGC#startRevisionGC}} should 
> {code}
> @return  the status of the operation right after it was initiated
> {code} 
> However, it does return {{succeeded}} on every call, see [1].
> I believe this should either compute the actual state, or return 
> {{initiated}} or {{running}}.
> Same applies for {{cancelRevisionGC}}.
> [0] 
> https://github.com/apache/jackrabbit-oak/blob/18d69e6f590064585414f12bda724f48f3d5843f/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGCMBean.java#L34-L40
> [1] 
> https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java#L105
> https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java#L123



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


[jira] [Comment Edited] (OAK-5055) o.a.j.o.s.s.RevisionGC returns status that don't comply with the API

2016-11-03 Thread Timothee Maret (JIRA)

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

Timothee Maret edited comment on OAK-5055 at 11/3/16 3:47 PM:
--

[~mduerig] Looking deeper into the {{RevisionGC}}, it seems there's another 
bug. I'll discuss it here since it is coupled to the current issue.

Actually returning {{initiated}}, {{failed}}, etc. is bogus, the operation id 
does not match the id of the {{gcOp}} field in the {{RevisionGC}} instance. 
This is because the operation methods implicitely increment the idGen counter 
(example at [0]). With the current ManagementOperation code, there seems to be 
no way to invoke the {{initiated}}, {{failed}}, etc. methods without messing up 
the id.

This could be fixed however, either by 
1. Exposing the {{initiated(id,message)}} like methods by making them public ; 
and changing the {{RevisionGC}} to code to invoke those methods
2. In {{RevisionGC}}, return {{getRevisionGCStatus()}} in any case instead of 
{{initiated}}, {{failed}}, etc.

wdyt ?


[0] 
https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/management/ManagementOperation.java#L279




was (Author: marett):
[~mduerig] Looking deeper into the {{RevisionGC}}, it seems there's another 
bug. I'll discuss it here since it is coupled to the current issue.

Actually returning {{initiated}}, {{failed}}, etc. is bogus, the operation id 
does not match the id of the {{gcOp}} field in the {{RevisionGC}} instance. 
This is because the operation methods implicitely increment the idGen counter 
(example at [0]). With the current ManagementOperation code, there seems to be 
no way to invoke the {{initiated}}, {{failed}}, etc. methods without messing up 
the id.

This could be fixed however, either by 
1. Exposing the {{initiated(id,message}} like methods by making them public ; 
and changing the {{RevisionGC}} to code to invoke those methods
2. In {{RevisionGC}}, return {{getRevisionGCStatus()}} in any case instead of 
{{initiated}}, {{failed}}, etc.

wdyt ?


[0] 
https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/management/ManagementOperation.java#L279



> o.a.j.o.s.s.RevisionGC returns status that don't comply with the API
> 
>
> Key: OAK-5055
> URL: https://issues.apache.org/jira/browse/OAK-5055
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.5.12
>Reporter: Timothee Maret
>Assignee: Timothee Maret
> Fix For: 1.5.13
>
> Attachments: OAK-5055.patch, OAK-5055.patch
>
>
> According to the API [0], the method {{RevisionGC#startRevisionGC}} should 
> {code}
> @return  the status of the operation right after it was initiated
> {code} 
> However, it does return {{succeeded}} on every call, see [1].
> I believe this should either compute the actual state, or return 
> {{initiated}} or {{running}}.
> Same applies for {{cancelRevisionGC}}.
> [0] 
> https://github.com/apache/jackrabbit-oak/blob/18d69e6f590064585414f12bda724f48f3d5843f/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGCMBean.java#L34-L40
> [1] 
> https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java#L105
> https://github.com/apache/jackrabbit-oak/blob/e873825b92faf14b7ef52130c36e6466edcef6b0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java#L123



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