Hi Markus,

Line 73 of AbstractQueryManager

    query = (Query) componentManager.lookup(Query.ROLE, language);

Your componentManager is null.. This probably means that you have  not 
activated the component manager from plexus properly.
Probably Vincent can help, but he will probably need to know how you 
have build your code.

Ludovic

Markus Lanthaler wrote:
> Hi,
>
> I'm currently implementing the last things to finish OpenID authentication 
> support but I have some problems with the query manager. I'm trying to get 
> the document (should be only one) which an attached OpenIdIdentifier object 
> whose "identifier" string property's value has some specific value. I didn't 
> found any documentation apart http://markmail.org/message/jt6m2huqr4r6hvk6 
> and 
> http://dev.xwiki.org/xwiki/bin/view/Design/XWiki+Query+Language+Specification.
>
> I tried to achieve this by the following code:
>
>     public static String findOpenIDUser(String openid_identifier, 
> XWikiContext context) throws XWikiException
>     {
>         XWiki xwiki = context.getWiki();
>
>         QueryManager qm = xwiki.getStore().getQueryManager();
>         Query search_user;
>
>         if (qm.hasLanguage(Query.HQL)) {
>             search_user =
>                 qm.createQuery(", BaseObject as obj, StringProperty as prop 
> where doc.fullName = obj.name and obj.className = 'XWiki.OpenIdIdentifier' 
> and obj.id=prop.id.id and prop.id.name='identifier' and prop.value = 
> ':identifier'", Query.HQL);
>         } else if (qm.hasLanguage(Query.XPATH)) {
>             search_user = 
> qm.createQuery("/*/*[obj/XWiki/OpenIdIdentifier/@xp:identifier = 
> ':identifier'] ", Query.XPATH);
>         } else
>             throw new RuntimeException();
>
>         search_user.bindValue("identifier", openid_identifier);
>
>         List<XWikiDocument> found_users = search_user.setLimit(1).execute();
>         if (found_users.size() > 0) {
>             if (log.isDebugEnabled()) {
>                 log.debug("OpenID " + openid_identifier + " already 
> registered.");
>             }
>             return found_users.get(0).getFullName();
>         }
>
>         return null;
>     }
>
>
> but all I get is a NullPointerException when qm.createQuery(..., Query.HQL) 
> is called. What's wrong with my code?
>
> java.lang.NullPointerException
>  at 
> com.xpn.xwiki.store.query.AbstractQueryManager.createQuery(AbstractQueryManager.java:73)
>  at 
> com.xpn.xwiki.user.impl.openid.OpenIDHelper.findOpenIDUser(OpenIDHelper.java:109)
>  at 
> com.xpn.xwiki.user.impl.xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java:201)
>  at 
> com.xpn.xwiki.user.impl.xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java:178)
>  at 
> com.xpn.xwiki.user.impl.xwiki.XWikiAuthServiceImpl.checkAuth(XWikiAuthServiceImpl.java:205)
>  at com.xpn.xwiki.XWiki.checkAuth(XWiki.java:3518)
>  at 
> com.xpn.xwiki.user.impl.xwiki.XWikiRightServiceImpl.checkAccess(XWikiRightServiceImpl.java:139)
>  at com.xpn.xwiki.XWiki.checkAccess(XWiki.java:3526)
>  at com.xpn.xwiki.XWiki.prepareDocuments(XWiki.java:4432)
>  at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:190)
>  at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115)
>  at 
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
>  at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
>  at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at 
> com.xpn.xwiki.web.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:287)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at 
> com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>  at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>  at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>  at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>  at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>  at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>  at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>  at java.lang.Thread.run(Thread.java:619)
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
>   


-- 
Ludovic Dubost
Blog: http://blog.ludovic.org/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to