| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JGit commit objects are a recursive data structure; they have links to
their parent commits. Serializing a JGit commit will try to recursively
serialize all reachable ancestors as faras they have been loaded. If
that ancestor chain is too long, a StackOverflowError is thrown during
Wicket's page serialization if a page has a reference to sucha JGit
commit.
Fixed by making sure that pages o not contain references to JGit
commits. Use the (existing) wrapper object RepositoryCommit instead.
* RepositoryCommit has a transient reference to the JGit commit and
reads the commit from the repository upon de-serialization.
* RefModel is a similar case (JGit tags/branches may also have links
to the commits they point to). Solved a bit differently by making it
a pure data object by transferring the interesting data from the JGit
object in the constructor.
* Change DataViews instantiated with RevCommit to use RepositoryCommit
instead.
* Change inner anonymous DataViews to ensure they do not have a
synthesized field referencing the "allRefs" map. Such a synthesized
field would also get serialized, and then serialize JGit commits
again.
Finally, remove non-transient logger instances in Wicket classes. Those
might lead to NotSerializableException.
These StackOverflowErrors have been reported in several places since
2014:
* https://groups.google.com/forum/#!topic/gitblit/GH1d8WSlR6Q
* https://bugs.chromium.org/p/gerrit/issues/detail?id=3316
* https://groups.google.com/d/msg/repo-discuss/Kcl0JIGNiGk/0DjH4mO8hA8J
* https://groups.google.com/d/msg/repo-discuss/0_P6A3fjTec/2kcpVPIUAQAJ
* https://github.com/gitblit/gitblit/issues/1011
* https://github.com/tomaswolf/gerrit-gitblit-plugin/issues/21
|
| |
|
| |
|
| |
|
|
|
|
| |
Change-Id: Ie245da271ad1e7c90b1fab46832f9ecc7b5d297a
|
|
|
|
|
|
|
|
|
|
| |
This is the first step towards modularization and injection. All
direct references to the GitBlit singleton within the Wicket pages
and panels have been replaced to proxy methods in the GitBlitWebApp
singleton. There are still two Wicket classes which rely on the
GitBlit singleton; those require manual instantiation (servlet 3).
Change-Id: I0cdbbcf87959d590c446c99abb09c07c87c737bc
|
|
|
|
| |
Change-Id: I6935fa45598da847936748b474a3da47e94efaac
|
|
|
|
| |
Change-Id: I421a6b8f8c8eaa5d34b7629858de76fc96458cd3
|
|
|
|
| |
Change-Id: I0eb217064abc4f4b0f6bfbbc21302c470cc2f9c6
|
|
|
|
| |
Change-Id: I2f695f5d5d72d8c08272981f756334b45398a1f7
|
|
|
|
|
|
|
|
|
| |
All WikiLinks must be specified relative to the root of the repository.
The displayed link text is stripped to just the document name. Spaces in
the document name are replaced with '-' characters; this is consistent with
wiki syntax and Github.
Change-Id: Id3fb1b5441352d9bacc4993a5b85882db113693b
|
|
|
|
|
|
|
| |
Automatic detection also will now also display a plain text "readme"
or "readme.txt" file.
Change-Id: Id6be729bdc469e7a5cfd1f4144df340a6b93475e
|
|
|
|
| |
Change-Id: I11eb50ba1ef0bef8ac47bf6f7b17e0f79ecd3f2d
|
|
|
|
| |
Change-Id: I9f91138b20219be6e3c4b28251487df262bff6cc
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This will probably be merged into a refined, single multi-protocol
url panel.
|
|
|
|
|
| |
This will probably be refined some more to merge the http/https and git urls
into a single url panel.
|
| |
|
|
This is a massive commit which reorganizes the entire project structure
(although it is still monolithic), removes the Build classes, and
switches to Moxie, a smarter Ant build tookit based on the original
Gitblit Build classes.
The Ant build script will likely require additional fine-tuning, but
this is big step forward.
|