Hi,

I'm developing a webapp using the core jaggery modules. Im trying to add a
new user to the carbon user store via my "Sign Up" page. Im using the '
*carbon*' jaggery module for this purpose.

In the process of adding a new user, I get a *"null"* parameter error [1]
when I call the following line of code:

    *var tenantId = carbon.server.tenantId();*
*    var url = getAddress('https') + "/admin/services";*
*    var server = new carbon.server.Server(url);*

*    var userManager = new carbon.user.UserManager(server, tenantId); *

I looked into the source of the *"user-manager.js"* which is located at -
*/modules/carbon/scripts/user.*

The error occurs as a result of this part of the source:

*        var UserManager = function (serv, tenant) {*
*                                              tenant = tenant ||
server.superTenant.domain;*
*                                              this.server = serv;*
                                              *this.tenantId =
server.tenantId({*
*                                                       domain: tenant*
*                                              });*
*                              .........................*

In the call for the *"server.tenantId"* in the above code, *domain* is
passed in with the value of "*tenant*" which is the *carbon.super* id
of *"-1234"
*and not an actual domain-name*.*

As a result *tenant.js *found inside  */modules/carbon/scripts/server/ *returns
*"-1" [return domain ? tenantManager.getTenantId(domain)] *which is set to*
this.tenantId *inside *"user-manager.js"**.*

This error is carried onto the following sections of the code *(inside
user-manager.js)* and the code breaks at:

*var realmService =
server.osgiService('org.wso2.carbon.user.core.service.RealmService'),*
*            realm = realmService.getTenantUserRealm(this.tenantId);
         // returns null*
*        this.manager = realm.getUserStoreManager();
                ** // below mentioned [1] error occurs*

The return from  *realmService.getTenantUserRealm(this.tenantId) *is
*"null"*, given that there is no actual tenant id of *"-1"*.
-------------------------------------------------------------------------------------------

This error has been evaded in the *"carbon" *module included in some of our
products [Ex: MDM] by simply removing the line thats causing the error and
only leaving the following:

*  var UserManager = function (serv, tenant) {*
*                                              tenant = tenant ||
server.superTenant.domain;*
*                                              this.server = serv;*
                              ........................
*                              .........................*

However, I worked around this issue by simple replacing *"tenant" *that is
passed in as *domain, *with *"server.superTenant.domain":*

*     var UserManager = function (serv, tenant) {*
*                this.tenant = tenant || server.superTenant.domain;*
*                this.server = serv;*

*                this.tenantId = server.tenantId({*
*                            domain: server.superTenant.domain*
*                 });*
                              ........................
*                              .........................*



Please do let me know if I am missing anything important here.
Thanks!


*[1]*
[2015-05-15 21:16:49,912] ERROR
{org.jaggeryjs.scriptengine.engine.RhinoEngine} -
 org.mozilla.javascript.EcmaError: TypeError: Cannot call method
"getUserStoreManager" of null (user-manager#39)
[2015-05-15 21:16:49,912] ERROR
{org.jaggeryjs.jaggery.core.manager.WebAppManager} -
 org.mozilla.javascript.EcmaError: TypeError: Cannot call method
"getUserStoreManager" of null (user-manager#39)
org.jaggeryjs.scriptengine.exceptions.ScriptException:
org.mozilla.javascript.EcmaError: TypeError: Cannot call method
"getUserStoreManager" of null (user-manager#39)
at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:582)
at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:280)
at
org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432)
at org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:177)
at
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:161)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method
"getUserStoreManager" of null (user-manager#39)
at
org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
at
org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
at
org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3731)
at
org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2258)
at
org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2251)
at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:83)
at
org.mozilla.javascript.gen.user_manager_13._c_anonymous_3(user-manager:39)
at org.mozilla.javascript.gen.user_manager_13.call(user-manager)
at org.mozilla.javascript.BaseFunction.construct(BaseFunction.java:338)
at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:2349)
at
org.jaggeryjs.rhino.login.controller.c0._c_script_0(/login/controller/register-user.jag:49)
at
org.jaggeryjs.rhino.login.controller.c0.call(/login/controller/register-user.jag)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at
org.jaggeryjs.rhino.login.controller.c0.call(/login/controller/register-user.jag)
at
org.jaggeryjs.rhino.login.controller.c0.exec(/login/controller/register-user.jag)
at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:577)
... 31 more


-------------------------------------
*Shabir Mohamed*
*Software Engineer*
WSO2 Inc.; http://wso2.com
Email: [email protected] <[email protected]>
Mobile: +94 77 3516019 | +94 71 6583393
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to