caching problems

173 views
Skip to first unread message

Tamas Papp

unread,
Dec 10, 2013, 8:55:13 AM12/10/13
to git...@googlegroups.com
hi,

First of all, I've just realized, the default admin/admin login works
even if I use ldap authentication. I guess the reason is the backing
user service.
It would be great if the local 'admin' (default) user can be
disabled/enabled from the config file. It's could be a serious security
hole if the admin misses the fact, there is always a local admin user
with default password...


Something is really wrong on the master branch around caching.



With a version before the recent big changes (2013-11-26) I'm not able
to login. The problem is something like 'Page expired'... From the log file:

2013-12-10 13:39:42 RequestCycle [ERROR] unable to find component with
path userPanel:loginForm on stateless page [Page class =
com.gitblit.wicket.pages.MyDashboardPage, id = 3, version = 0] it could
be that the component is inside a repeater make your component return
false in getStatelessHint()
org.apache.wicket.WicketRuntimeException: unable to find component with
path userPanel:loginForm on stateless page [Page class =
com.gitblit.wicket.pages.MyDashboardPage, id = 3, version = 0] it could
be that the component is inside a repeater make your component return
false in getStatelessHint()
at
org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget.processEvents(BookmarkableListenerInterfaceRequestTarget.java:148)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
at
com.gitblit.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:87)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:369)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:944)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1005)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:744)


Doesn't matter, which user I tried with. Than I switched browser (to IE)
and it started working. Than I switched user and was able to login, but
I saw the first user's dashboard. Eventually somehow I was able to get
the right dashboard by refreshing the browser or something like that.
BTW, users reported to me this issue a couple of times, but this was the
first time, I was able to reproduce.

There is another machine (same repositories, but upgraded to the latest
master code).
I created a new config file from the template and ldap server is FreeIPA.

# this is failing without the port number
realm.ldap.server = ldap://ldapserver:389
realm.ldap.maintainTeams = true
realm.ldap.accountBase = cn=users,cn=accounts,dc=foo
realm.ldap.accountPattern = (&(objectClass=person)(uid=${username}))
realm.ldap.groupBase = cn=groups,cn=accounts,dc=foo
realm.ldap.groupMemberPattern = (&(objectClass=posixgroup)(member=${dn}))
realm.ldap.admins = adminuser1 adminuser2 @admins
realm.ldap.displayName = gecos
realm.ldap.email = mail
realm.ldap.ldapCachePeriod = 2 MINUTES
# I tried both
realm.ldap.synchronizeUsers.enable = false/true
realm.ldap.synchronizeUsers.removeDeleted = true
realm.ldap.uid = uid



If realm.ldap.synchronizeUsers.enable = false:
users.conf file is created, logged in users are there, groups are there,
but like this:

[team "group"]
role = "#none"
accountType = LDAP
user = user1

And that's all, there are no more users listed.

If realm.ldap.synchronizeUsers.enable = true:
All users are there, groups are the same as above.

BUT I'm not able to login. Checking ldap server log shows up nothing, it
looks, the application doesn't try to connect to the ldap server...

Also there is an admin account in ldap database so the admin account
with local type is changed to external. I'm not sure this is the intent
behaviour. is it?

Thanks,
tamas

Tamas Papp

unread,
Dec 10, 2013, 9:43:33 AM12/10/13
to git...@googlegroups.com
Also If I login with and admin user, it's not able to select users, eg.
to delegate permissions to them on repositories.

> If realm.ldap.synchronizeUsers.enable = true:
> All users are there, groups are the same as above.
>
> BUT I'm not able to login. Checking ldap server log shows up nothing, it
> looks, the application doesn't try to connect to the ldap server...
>
> Also there is an admin account in ldap database so the admin account
> with local type is changed to external. I'm not sure this is the intent
> behaviour. is it?


I'm wondering, is this 2 or 3 separate issues?

10x
tamas

James Moger

unread,
Dec 10, 2013, 10:09:17 AM12/10/13
to git...@googlegroups.com
Yes, these are 3 or 4 separate issues.

Wicket page.  I'll review that more closely.

Admin user.  I will probably add a "disable" flag for an account as this would be useful for the upcoming Tickets feature.  However the administrator is still responsible for handling this.  :)

LDAP port.  This did change, I'll restore that part of the code.

LDAP connection.  There was a recent change that re-ordered the connection binding to ensure that TLS was negotiated before sending credentials.  It sounds like this broke your setup.

What I really need is an active LDAP guru/contributor to review all changes to LDAP authentication before they get applied to master.  :/

-J

Tamas Papp

unread,
Dec 10, 2013, 10:22:54 AM12/10/13
to git...@googlegroups.com
hi,

One more issue:

Unexpected RuntimeException

WicketMessage: The component(s) below failed to render. A common problem is that you have added a component in code but forgot to reference it in the markup (thus the component will never be rendered).

1. [Component id = pageName]

Root cause:

org.apache.wicket.WicketRuntimeException: The component(s) below failed to render. A common problem is that you have added a component in code but forgot to reference it in the markup (thus the component will never be rendered).

1. [Component id = pageName]

at org.apache.wicket.Page.checkRendering(Page.java:1201) at org.apache.wicket.Page.renderPage(Page.java:941) at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:261) at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1287) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:101) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:744)


I tried to enter in a repository.


tamas


Tamas Papp

unread,
Dec 10, 2013, 10:29:57 AM12/10/13
to git...@googlegroups.com

On 12/10/2013 04:09 PM, James Moger wrote:
> Yes, these are 3 or 4 separate issues.
>
> Wicket page. I'll review that more closely.
>
> Admin user. I will probably add a "disable" flag for an account as
> this would be useful for the upcoming Tickets feature. However the
> administrator is still responsible for handling this. :)
>
> LDAP port. This did change, I'll restore that part of the code.

I can live with that. Though I thought it was intentional, just not
documented.

> LDAP connection. There was a recent change that re-ordered the
> connection binding to ensure that TLS was negotiated before sending
> credentials. It sounds like this broke your setup.
>
> What I really need is an active LDAP guru/contributor to review all
> changes to LDAP authentication before they get applied to master. :/

Well, I cannot help in this:/

At this moment I'm trying to get some resources for the ssh support.

Devs are crying for that (as well as for the lack of https support, they
need both...).


tamas

James Moger

unread,
Dec 10, 2013, 10:34:40 AM12/10/13
to git...@googlegroups.com
Lack of https support?  What do you mean.

-J

Tamas Papp

unread,
Dec 10, 2013, 10:39:31 AM12/10/13
to git...@googlegroups.com

On 12/10/2013 04:34 PM, James Moger wrote:
> Lack of https support? What do you mean.

Not of gitblit.
In other words they need both protocol support on the same repository,
ssh and https.

tamas

James Moger

unread,
Dec 10, 2013, 10:46:00 AM12/10/13
to git...@googlegroups.com
I'm slowly evolving a requirements list for SSH... but the Tickets feature (and it's requirements - e.g. recent refactor) is so large in scope that I don't expect to start on SSH until Spring.

-J

Tamas Papp

unread,
Dec 10, 2013, 10:50:49 AM12/10/13
to git...@googlegroups.com
Sorry, this exception was because I changed  web.mountParameters=true.

I don't find an accurate answer right now. Is it possible to set this up properly?

Thanks,
tamas

Tamas Papp

unread,
Dec 10, 2013, 10:55:51 AM12/10/13
to git...@googlegroups.com
How many time does it require?
If I can talk my boss to hire a freelancer to complete this task, what
do you think, how much it would cost?
I would appreciate if you have a guess or a rough number or anything,
that I can tell him. Sorry for the idiot question, but probably you're
the the right person, who can tell it.

10x
tamas



Tamas Papp

unread,
Dec 10, 2013, 11:13:29 AM12/10/13
to git...@googlegroups.com

On 12/10/2013 04:09 PM, James Moger wrote:
> Yes, these are 3 or 4 separate issues.
>
> Wicket page. I'll review that more closely.
>
> Admin user. I will probably add a "disable" flag for an account as
> this would be useful for the upcoming Tickets feature. However the
> administrator is still responsible for handling this. :)
>

Well, actually in this case I deleted users.conf from time to time,
therefore an new local admin user created all the time...with default
password. That's why I would prefer a configuration option.

tamas

James Moger

unread,
Dec 10, 2013, 1:53:13 PM12/10/13
to git...@googlegroups.com
Not that I am aware of using '/' - but it depends on the proxy.  The proxy is re-encoding %2F as '/' which breaks Wicket parameter deserialization.  Tomcat does the same thing unless you override it's behavior.

You could set web.forwardSlashCharacter=!

-J

James Moger

unread,
Dec 10, 2013, 3:02:53 PM12/10/13
to git...@googlegroups.com
Ok Tamas.  As usual your testing is invaluable.  :)

LDAP.  I pushed LDAP fixes for the regressions you spotted: port & anonymous bind.  Please test and let me know if authentication is working again.  :)  Before the refactor there was a change that improved the security of ldap+tls at the expense of throwing away anonymous binds and port specifications.  Hopefully all will be better now.

Admin in LDAP vs Admin in LOCAL.  Tricky.  The synchronize function probably overwrites your local admin account.  This is a grey area.

Not being able to set repository permissions.  I don't see that behavior with the Windows auth provider (I don't have an LDAP configured but they should be theoretically similar).  Which page are you in?

Your continued testing of master is helpful - especially after the refactor.  :)

-J

James Moger

unread,
Dec 10, 2013, 3:21:02 PM12/10/13
to git...@googlegroups.com
To be honest, I haven't sat down to think about it.  I think that contributor got fairly far in his attempt.  My recent refactoring and Tickets design changes took into account some of what I think will become important for the SSH transport.  The more I use command-line git, the more I think SSH support is important.  It's less important if you can drive git with Eclipse or SmartGit or SourceTree, etc.

There are some other pre-cursor changes that I am likely to explore before diving into the SSH transport.  For example, I really like the administration technique that gitolite employs - clone a settings repository and commit changes/keys/etc.  I think gerrit also uses that trick which is a really elegant solution.  Key management, obviously, is central to the SSH transport.

-J

Tamas Papp

unread,
Dec 10, 2013, 3:35:40 PM12/10/13
to git...@googlegroups.com
So much true!
Also it would be great, if users can upload their own keys.

Well, if you can think about it, it would be so good.
I would like to raise some money for this, but I have no idea, how much
it could be. I cannot go to my boss with *some*:)
If it's an acceptable number, then we could hire for the project either
you or a freelancer/volunteer..


tamas

James Moger

unread,
Dec 10, 2013, 3:42:54 PM12/10/13
to git...@googlegroups.com
Also it would be great, if users can upload their own keys.


Don't you need job security?  ;)  Yeah, ok.  Users should be able to upload.  :)

-J

Tamas Papp

unread,
Dec 10, 2013, 4:00:33 PM12/10/13
to git...@googlegroups.com

On 12/10/2013 09:42 PM, James Moger wrote:

Also it would be great, if users can upload their own keys.


Don't you need job security?  ;)  Yeah, ok.  Users should be able to upload.  :)

This is not security, but one of their self-orginizing wishes...


Well, actually there is one more, an unrelated one. There are two main points, why they are fighting with me all the time about git server application (gitlab is the other one).

One is ssh support with keys, the other one is creating/managing own repositories. Here they mean not only personal repositories (AFAIK it's possible, though not through gui),
but projects, so project admins or owners are able to manage repositories under their project (project/*.git).
Do you plan to implement such a functionality?

10x
tamas

Tamas Papp

unread,
Dec 10, 2013, 6:22:12 PM12/10/13
to git...@googlegroups.com

On 12/10/2013 09:02 PM, James Moger wrote:
> Ok Tamas. As usual your testing is invaluable. :)

I'm happy if I can contribute just a little bit:)

> LDAP. I pushed LDAP fixes for the regressions you spotted: port &
> anonymous bind. Please test and let me know if authentication is
> working again. :) Before the refactor there was a change that
> improved the security of ldap+tls at the expense of throwing away
> anonymous binds and port specifications. Hopefully all will be better
> now.

Unfortunately not much:/
Still the same. I also tried with ldaps and it's exactly the same..
I forgot to mention, I tested with non-anonymous bind too, but it's even
worth, in that case there is nothing else in users.conf, only the local
admin account.

> Admin in LDAP vs Admin in LOCAL. Tricky. The synchronize function
> probably overwrites your local admin account. This is a grey area.

Well, in this specific case I don't mind at all.
However, it's interesting if I set
realm.ldap.synchronizeUsers.enable=true then
realm.ldap.synchronizeUsers.enable=false without removing users.conf I'm
not able to login. Than I remove users.conf and I it looks OK.

> Not being able to set repository permissions. I don't see that
> behavior with the Windows auth provider (I don't have an LDAP
> configured but they should be theoretically similar). Which page are
> you in?

Here you mean the case when realm.ldap.synchronizeUsers.enable=false and
I don't find users in the system, right? Well, I don't see them
anywhere, users.conf is empty (of course), there are only two users,
admin and the one, I logged with.

> Your continued testing of master is helpful - especially after the
> refactor. :)

To be honest this is a production system and until the refactoring most
of the changes usually didn't break anything (except some smaller
caching issues).


BTW, I'm not absolutely sure, I configured everything properly. There
are two servers, an old one, that currently and mostly works, though
with small caching issues (see my first mail) and a new one at a new
site. At the same time I'm migrating ldap to a new server and it works
fine with other applications. But I'm not able get it work with the
configuration from the old one. I don't see, why...
Maybe it would help a lot, if there is an authentication debug option,
that shows up a more detailed log, eg. ldap queries, replies etc. Also
web.debugMode=true doesn't provide verbose messages.


tamas

Tamas Papp

unread,
Dec 10, 2013, 7:20:01 PM12/10/13
to git...@googlegroups.com

On 12/11/2013 12:22 AM, Tamas Papp wrote:


OK, I tested a couple of scenarios.
It looks, the users cannot login in case it exists in the users.conf file.

Therefore if realm.ldap.synchronizeUsers.enable=true, then of course
it's never able to login.
If realm.ldap.synchronizeUsers.enable=false, then able to login one
time. Than it appears in users.conf and no more success.

Team/group handling looks fine, I just forgot, that they're filled
dynamically, the members are not synced from ldap statically.

Also the old (the version before refactoring looks fine - except the
caching issue..).


I hope, it helps.


tamas

Tamas Papp

unread,
Dec 10, 2013, 7:36:26 PM12/10/13
to git...@googlegroups.com

On 12/10/2013 10:00 PM, Tamas Papp wrote:


One is ssh support with keys, the other one is creating/managing own repositories. Here they mean not only personal repositories (AFAIK it's possible, though not through gui),
but projects, so project admins or owners are able to manage repositories under their project (project/*.git).
Do you plan to implement such a functionality?

Hmm, I have looked into this and it's possible to create personal repositories on GUI. Just create attribute has to be granted on the users/group page, nice.
Also it's possible on that page to grant access to projects (project/.*). It's good for existing repos.

The only thing is missing there is creating new repositories under projects.
Is it a complicated feature?


tamas


ps.: Sorry for the flood....

James Moger

unread,
Dec 11, 2013, 7:41:54 AM12/11/13
to git...@googlegroups.com
Yeah, I have an idea or two on how to offer what you want.  I'll never remember it here.  Open an issue on GoogleCode for me.  I'll take another look at LDAP today.

-J

James Moger

unread,
Dec 11, 2013, 9:02:09 AM12/11/13
to git...@googlegroups.com
Sync with my master.  I think I found the authentication regression.

-J

Tamas Papp

unread,
Dec 11, 2013, 9:59:52 AM12/11/13
to git...@googlegroups.com

On 12/11/2013 03:02 PM, James Moger wrote:
> Sync with my master. I think I found the authentication regression.


hi,

WicketMessage: Can't instantiate page using constructor public com.gitblit.wicket.pages.MyDashboardPage()

Root cause:

java.lang.NullPointerException
at com.gitblit.models.UserModel.isLocalAccount(UserModel.java:98)
at com.gitblit.manager.AuthenticationManager.supportsCredentialChanges(AuthenticationManager.java:420)
at com.gitblit.wicket.pages.RootPage$UserMenu.<init>(RootPage.java:575)
at com.gitblit.wicket.pages.RootPage.setupPage(RootPage.java:155)
at com.gitblit.wicket.pages.MyDashboardPage.setup(MyDashboardPage.java:71)
at com.gitblit.wicket.pages.MyDashboardPage.<init>(MyDashboardPage.java:57)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:192)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:96)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:744)

Complete stack:

org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor public com.gitblit.wicket.pages.MyDashboardPage()
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:192)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

Something is still wrong.

tamas


James Moger

unread,
Dec 11, 2013, 10:29:58 AM12/11/13
to git...@googlegroups.com
Grrr.  I just pushed two null checks for that.

-J

Tamas Papp

unread,
Dec 11, 2013, 10:40:22 AM12/11/13
to git...@googlegroups.com

On 12/11/2013 01:20 AM, Tamas Papp wrote:
> Also the old (the version before refactoring looks fine - except the
> caching issue..).

Regarding this caching issue:

2013-12-11 16:34:30 RequestCycle [ERROR] Can't instantiate page using
constructor public
com.gitblit.wicket.pages.SummaryPage(org.apache.wicket.PageParameters)
and argument r = "[it/configs/bpoffice-dhcp.d.git]"
org.apache.wicket.WicketRuntimeException: Can't instantiate page using
constructor public
com.gitblit.wicket.pages.SummaryPage(org.apache.wicket.PageParameters)
and argument r = "[it/configs/bpoffice-dhcp.d.git]"
at
org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:343)
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
at
sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at
org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
... 36 more
Caused by: java.lang.NullPointerException
at com.gitblit.GitBlit.getFork(GitBlit.java:2185)
at
com.gitblit.wicket.panels.RepositoryUrlPanel.createRepositoryIndicators(RepositoryUrlPanel.java:458)
at
com.gitblit.wicket.panels.RepositoryUrlPanel.onInitialize(RepositoryUrlPanel.java:104)
at org.apache.wicket.Component.fireInitialize(Component.java:4105)
at
org.apache.wicket.MarkupContainer.initialize(MarkupContainer.java:433)
at
org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:1000)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:142)
at com.gitblit.wicket.pages.SummaryPage.<init>(SummaryPage.java:135)
... 40 more



Recently I meet quite weird issues.
It looks quite a lot of time, that I click on repositories and I
redirected back to the main page/dashboard.

Than I clicked directory on a commit ref and I received the above exception.
I also tried to clean the browser cache, but no joy.


tamas

James Moger

unread,
Dec 11, 2013, 10:46:14 AM12/11/13
to git...@googlegroups.com
Since you are not running 1.3.2 here... the line numbers don't match. Do you have a commit id?
Maybe we should go off-list for all this activity.

-J

Tamas Papp

unread,
Dec 11, 2013, 10:57:53 AM12/11/13
to git...@googlegroups.com

On 12/11/2013 04:29 PM, James Moger wrote:
> Grrr. I just pushed two null checks for that.

Much better!

Thanks,
tamas

Tamas Papp

unread,
Dec 11, 2013, 1:34:49 PM12/11/13
to git...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages