jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Louis.Mast...@log-net.com
Subject Re: userdatabase issue blank UIDs
Date Tue, 09 Aug 2011 11:35:17 GMT
No problem.  I should have been keeping up with it anyway.

Thanks,
Lou


Harry Metske <harry.metske@gmail.com> wrote on 08/08/2011 01:30:42 PM:

> I'm sorry Lou, I don't see an easy way to get just this fix on your 
(2.8.1)
> level, there have been a lot of commits both before and after this patch
> 
> regards,
> Harry
> 
> 
> 2011/8/8 <Louis.Masters@log-net.com>
> 
> > Harry:
> >
> > Thanks.  Do I have to completely upgrade to 2.8.4 or can I do it
> > piecemeal?  Maybe a single file?
> >
> > -Lou
> >
> >
> > Harry Metske <harry.metske@gmail.com> wrote on 08/06/2011 12:49:10 PM:
> >
> > > Louis,
> > >
> > > this has been fixed in 2.8.2-svn-14:
> > >
> > > 2009-03-19  Andrew Jaquith <ajaquith AT apache DOT org>
> > >
> > >         * 2.8.2-svn-14
> > >
> > >         * Fixed bug in XMLUserDatabase that was preventing UIDs from
> > being
> > >         saved, which generated tons of NPEs afterwards. Added unit 
tests
> > >         to check for correct saving of UIDs. Tightened input 
filtering
> > on
> > >         user profile fields to prohibit more characters.
> > >
> > > See also : 
http://web.archiveorange.com/archive/v/4EcsS3r0TQl81crBoOks
> > >
> > > regards,
> > > Harry
> > >
> > >
> > >
> > > 2011/8/6 <Louis.Masters@log-net.com>
> > >
> > > > I'm running into a problem with some code of mine.  The following 
code
> > > > takes a list of our main DB users and "pushes" it into the wiki's 
DB
> > > > (currently an XML file).  Here is a snippet of my code:
> > > >
> > > >                        com.ecyrd.jspwiki.auth.user.UserDatabase 
udb =
> > > > engine.getUserManager().getUserDatabase();
> > > >
> > > >                        for(Map.Entry<String, String> entry :
> > > > rc.entrySet()) {   //a list of users and emails
> > > >                                String key = entry.getKey();
> > > >                                String value = entry.getValue();
> > > >
> > > > com.ecyrd.jspwiki.auth.user.UserProfile
> > > > newP = udb.newProfile();
> > > >                                newP.setLoginName(key);
> > > >                                newP.setFullname(key);
> > > >                                newP.setEmail(value);
> > > >                                udb.save(newP);
> > > >                        }
> > > >
> > > > The problem I am running into is when it runs on a XML file that
> > already
> > > > exists (contains hundreds of users) and tries to add new users, 
the
> > users
> > > > go in with a UID of "" (empty string) and the wiki crashes.  I'm 
not
> > 100%
> > > > sure that the wiki is crashing due to the empty UID, but it is my 
only
> > > > guess.  I see the following stack trace:
> > > >
> > > > java.lang.NullPointerException
> > > >        at
> > > >
> > 
org.apache.xerces.dom.DeepNodeListImpl.nextMatchingElementAfter(Unknown
> > > > Source)
> > > >        at org.apache.xerces.dom.DeepNodeListImpl.item(Unknown 
Source)
> > > >        at org.apache.xerces.dom.DeepNodeListImpl.getLength(Unknown
> > > > Source)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.auth.user.XMLUserDatabase.
> > > findByAttribute(XMLUserDatabase.java:617)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.auth.user.XMLUserDatabase.
> > > findByFullName(XMLUserDatabase.java:163)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.auth.user.AbstractUserDatabase.
> > > find(AbstractUserDatabase.java:81)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.WikiSession.
> > > injectUserProfilePrincipals(WikiSession.java:672)
> > > >        at
> > > > 
com.ecyrd.jspwiki.WikiSession.actionPerformed(WikiSession.java:548)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.event.WikiEventManager$WikiEventDelegate.
> > > fireEvent(WikiEventManager.java:566)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.event.WikiEventManager.
> > > fireEvent(WikiEventManager.java:347)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.auth.AuthenticationManager.
> > > fireEvent(AuthenticationManager.java:751)
> > > >        at
> > > >
> > > > com.ecyrd.jspwiki.auth.AuthenticationManager.
> > > login(AuthenticationManager.java:274)
> > > >        at
> > > >
> > 
com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:156)
> > > >        at
> > > >
> > > > org.apache.catalina.core.ApplicationFilterChain.
> > > internalDoFilter(ApplicationFilterChain.java:235)
> > > >        at
> > > >
> > > > org.apache.catalina.core.ApplicationFilterChain.
> > > doFilter(ApplicationFilterChain.java:206)
> > > >        at
> > > >
> > > > org.jboss.web.tomcat.filters.ReplyHeaderFilter.
> > > doFilter(ReplyHeaderFilter.java:96)
> > > >        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:230)
> > > >        at
> > > >
> > > > org.apache.catalina.core.StandardContextValve.
> > > invoke(StandardContextValve.java:175)
> > > >        at
> > > >
> > > > org.jboss.web.tomcat.security.SecurityAssociationValve.
> > > invoke(SecurityAssociationValve.java:179)
> > > >        at
> > > >
> > > > org.jboss.web.tomcat.security.JaccContextValve.
> > > invoke(JaccContextValve.java:84)
> > > >        at
> > > >
> > > > org.apache.catalina.core.StandardHostValve.
> > > invoke(StandardHostValve.java:128)
> > > >        at
> > > >
> > > > org.apache.catalina.valves.ErrorReportValve.
> > > invoke(ErrorReportValve.java:104)
> > > >        at
> > > >
> > > > org.jboss.web.tomcat.service.jca.CachedConnectionValve.
> > > invoke(CachedConnectionValve.java:157)
> > > >        at
> > > >
> > > > org.apache.catalina.core.StandardEngineValve.
> > > invoke(StandardEngineValve.java:109)
> > > >        at
> > > >
> > 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
> > > >        at
> > > >
> > 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> > > >        at
> > > >
> > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.
> > > process(Http11Protocol.java:580)
> > > >        at
> > > >
> > 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> > > >        at java.lang.Thread.run(Thread.java:595)
> > > >
> > > > I did notice that if I restart the wiki server, the UID's are 
fixed
> > (have
> > > > values) and the app starts working again.
> > > >
> > > > Any thoughts?  I'm running 2.8.1 on Windows.
> >

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message