Found couple of issues with n-level-nesting, fixed those and pushed to
master. Created a sample with 5 level nesting and everything works fine.




Please refer the n-level-nesting sample application
https://github.com/apache/stratos/tree/master/samples/applications/n-level-nesting
for more information..

Thanks.
​

On Fri, Mar 20, 2015 at 5:26 PM, Rajkumar Rajaratnam <[email protected]>
wrote:

> I fixed this NPE and pushed to master.
>
> Thanks.
>
> On Fri, Mar 20, 2015 at 10:25 AM, Imesh Gunaratne <[email protected]>
> wrote:
>
>> Hi Shaheed,
>>
>> A great finding! It looks like a functional issue to me, we will review
>> this and get back to you soon!
>>
>> Thanks
>>
>> On Fri, Mar 20, 2015 at 4:25 AM, Shaheedur Haque (shahhaqu) <
>> [email protected]> wrote:
>>
>>>  Hi,
>>>
>>>
>>>
>>> I can happily create Applications with just one Cartridge, or one level
>>> of nested Group or two levels of nested Group. But the 3rd fails like
>>> this:
>>>
>>>
>>>
>>> TID: [0] [STRATOS] [2015-03-19 22:43:53,248]  INFO
>>> {org.apache.stratos.autoscaler.services.impl.AutoscalerServiceImpl} -
>>> Cartridge group successfully added: [group-name] shaheed-3
>>>
>>> TID: [0] [STRATOS] [2015-03-19 22:43:54,032] ERROR
>>> {org.apache.stratos.rest.endpoint.handlers.CustomThrowableExceptionMapper}
>>> -  Internal server error
>>>
>>> java.lang.NullPointerException
>>>
>>>         at
>>> org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertCartridgeReferenceBeansToStubCartridgeContexts(ObjectConverter.java:1369)
>>>
>>>         at
>>> org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertGroupDefinitionsToStubGroupContexts(ObjectConverter.java:1490)
>>>
>>>         at
>>> org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertApplicationDefinitionToStubApplicationContext(ObjectConverter.java:1176)
>>>
>>>         at
>>> org.apache.stratos.rest.endpoint.api.StratosApiV41Utils.addApplication(StratosApiV41Utils.java:1030)
>>>
>>>         at
>>> org.apache.stratos.rest.endpoint.api.StratosApiV41.addApplication(StratosApiV41.java:594)
>>>
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>
>>> …
>>>
>>>
>>>
>>> The failing Application looks like this (I can provides formatted output
>>> if needed, but this more compact):
>>>
>>>
>>>
>>> POST error from https://10.0.0.101:9443/api/applications using
>>> {"alias": "shaheed-3", "applicationId": "shaheed-3", "components":
>>> {"cartridges": [], "groups": [{"name": "shaheed-3", "min": 1, "max": 1,
>>> "alias": "shaheed-3", "cartridges": [], "groups": [{"name": "blade", "min":
>>> 1, "max": 2, "alias": "blade", "cartridges": [{"cartridgeMin": 1,
>>> "cartridgeMax": 10000000, "type": "cartridge-proxy", "subscribableInfo":
>>> {"alias": "cartridge-proxy-1x0", "deploymentPolicy": "static-1",
>>> "artifactRepository": {"repoUsername": "user", "repoUrl": "
>>> http://xxx:10080/git/default.git";, "privateRepo": true, "repoPassword":
>>> "c-policy-2"}, "autoscalingPolicy": "economyPolicy"}}, {"cartridgeMin": 1,
>>> "cartridgeMax": 10000000, "type": "cisco-sample-vm", "subscribableInfo":
>>> {"alias": "cisco-sample-vm-1x0", "deploymentPolicy": "static-1",
>>> "artifactRepository": {"repoUsername": "user", "repoUrl": "
>>> http://xxx:10080/git/default.git";, "privateRepo": true, "repoPassword":
>>> "c-policy-2"}, "autoscalingPolicy": "economyPolicy"}}], "groups": [{"name":
>>> "slice", "min": 1, "max": 1, "alias": "slice", "cartridges":
>>> [{"cartridgeMin": 1, "cartridgeMax": 10000000, "type": "cartridge-proxy",
>>> "subscribableInfo": {"alias": "cartridge-proxy-2x0", "deploymentPolicy":
>>> "static-1", "artifactRepository": {"repoUsername": "user", "repoUrl": "
>>> http://xxx:10080/git/default.git";, "privateRepo": true, "repoPassword":
>>> "c-policy-1a"}, "autoscalingPolicy": "economyPolicy"}}, {"cartridgeMin": 1,
>>> "cartridgeMax": 10000000, "type": "cisco-sample-vm", "subscribableInfo":
>>> {"alias": "cisco-sample-vm-2x0", "deploymentPolicy": "static-1",
>>> "artifactRepository": {"repoUsername": "user", "repoUrl": "
>>> http://xxx:10080/git/default.git";, "privateRepo": true, "repoPassword":
>>> "c-policy-1b"}, "autoscalingPolicy": "economyPolicy"}}], "groups":
>>> []}]}]}]}}: ('500 Server Error: Internal Server Error', u'Internal server
>>> error')
>>>
>>>
>>>
>>> And the corresponding Cartridge Group looks like this:
>>>
>>>
>>>
>>> stratos> describe-cartridge-group shaheed-3
>>>
>>> Service Group : shaheed-3
>>>
>>>
>>> {"name":"shaheed-3","groups":[{"name":"blade","groups":[{"name":"slice","cartridges":["cartridge-proxy","cisco-sample-vm"],"groupScalingEnabled":false,"dependencies":{"startupOrders":["cartridge.cartridge-proxy-2x0,cartridge.cisco-sample-vm-2x0"],"terminationBehaviour":"terminate-none"}}],"cartridges":["cartridge-proxy","cisco-sample-vm"],"groupScalingEnabled":false,"dependencies":{"terminationBehaviour":"terminate-none"}}],"groupScalingEnabled":false,"dependencies":{"terminationBehaviour":"terminate-none"}}
>>>
>>>
>>>
>>> I have verified that all referenced Cartridges are in fact present. How
>>> can I tell what caused the Null pointer exception?
>>>
>>>
>>>
>>> Thanks, Shaheed
>>>
>>>
>>>
>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>
> Mobile : +94777568639
> Blog : rajkumarr.com
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Mobile : +94777568639
Blog : rajkumarr.com

Reply via email to