softwaremill / codebrag Goto Github PK
View Code? Open in Web Editor NEWYour daily code review tool
Home Page: http://www.codebrag.com
License: GNU Affero General Public License v3.0
Your daily code review tool
Home Page: http://www.codebrag.com
License: GNU Affero General Public License v3.0
Hello
I use codebrag to integrate with bitbucket repository. When I try install codebrag then I gets TransportException with message UnknownHostKey: bitbucket.org. RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
I dont know how can I resolve this problem.
We have a normal directory structure in svn
myproject
tags
branches
trunk
But the codebrag is set to myproject, instead of myproject/trunk so that all changes to any branch can be reviewed.
This works well except when we create or remove a branch and we get the full text change to the repo. i.e. the whole copy of trunk. This takes a few minutes to parse and display.
And with task based branching this happens frequently.
Perhaps this is expected and we should not (ab)use codebrag in this way but there is not a nice way to add/remove branches to watch for an svn project from the front end.
What I'd like is just for codebrag to abandon the review pane if it is over a certain size. say something like 500kb (who is going to review something that big anyway?)
From the about screen
You are running Codebrag 2.3.2
Build SHA: d6fc616
Build date: 2015-08-07 16:59
If this is a dupe or already fixed please point me in the right direction I couldn't see anything obivious on the issue list
Thanks
JP
For the administrator, I will need the privilege to limit the email notification, how can I do that?
e.g. Adam will only got the notification from project "git_source" but James can be notified by "git_source" and "snv_source".
From log:
11:54:30.599 [codebrag-akka.actor.default-dispatcher-3] ERROR c.s.c.repository.GitSvnRepository - Cannot pull changes for repo D:\codebrag-2.3.2\repos\trunk because of: No exit code: process destroyed.
11:54:30.602 [codebrag-akka.actor.default-dispatcher-3] ERROR c.s.c.s.commits.CommitImportService - Cannot pull changes from upstream
java.lang.RuntimeException: No exit code: process destroyed.
at scala.sys.process.ProcessImpl$CompoundProcess.exitValue(ProcessImpl.scala:87) ~[codebrag.jar:2.3.2]
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder$$anonfun$runBuffered$1.apply(ProcessBuilderImpl.scala:147) ~[codebrag.jar:2.3.2]
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder$$anonfun$runBuffered$1.apply(ProcessBuilderImpl.scala:147) ~[codebrag.jar:2.3.2]
at scala.sys.process.ProcessLogger$$anon$1.buffer(ProcessLogger.scala:98) ~[codebrag.jar:2.3.2]
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.runBuffered(ProcessBuilderImpl.scala:147) ~[codebrag.jar:2.3.2]
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang$less(ProcessBuilderImpl.scala:115) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.repository.GitSvnRepository.runWithUserPassCredentials(GitSvnRepository.scala:29) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.repository.GitSvnRepository.runPullCommand(GitSvnRepository.scala:20) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.repository.GitSvnRepository.pullChangesForRepo(GitSvnRepository.scala:13) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.repository.Repository$class.pullChanges(Repository.scala:20) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.repository.GitSvnRepository.pullChanges(GitSvnRepository.scala:8) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.commits.CommitImportService.importRepoCommits(CommitImportService.scala:15) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.updater.RepoUpdateActor$$anonfun$receive$1.applyOrElse(RepoUpdateActor.scala:14) [codebrag.jar:2.3.2]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [codebrag.jar:2.3.2]
at akka.actor.ActorCell.invoke(ActorCell.scala:386) [codebrag.jar:2.3.2]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [codebrag.jar:2.3.2]
at akka.dispatch.Mailbox.run(Mailbox.scala:212) [codebrag.jar:2.3.2]
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [codebrag.jar:2.3.2]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [codebrag.jar:2.3.2]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [codebrag.jar:2.3.2]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [codebrag.jar:2.3.2]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [codebrag.jar:2.3.2]
Do you need anything more?
Hi. I'm constantly getting this in the logs:
16:01:30.758 [codebrag-akka.actor.default-dispatcher-114] ERROR c.s.c.repository.GitRepository - Cannot pull changes for repo C:... because of: https://: authentication not supported
I'm using a git repo in TFS. I can pull from the command line using the credentials I placed in the config file. The app doesn't sync with the remote repo.
Any Ideas on how I can debug this?
When reviewing a svn hosted project, the drop down menu are not side by side :
while on a git project it's ok :
When switching between them, the branch drop down keeps displayed (git project -> svn project), or do not appear.
To correct the position bug, I have edited classes inline :
Regards
As soon as I begin to hover over the user icon, I am able to see the dropdown, but then when i navigate away from the icon to select one of the options from the dropdown, the dropdown disappears.
Here is a video demonstrating the issue:
I've written simple plugin for IntelliJ IDEA which opens file with given name in opened IDE when specific URL on localhost is called.
Codebrag could show button or link "Open in IDE" and call this url.
Plugin source: https://github.com/tdziurko/codebrag-intellij-idea-plugin
Url to call: http://localhost:8880/codebrag-intellij/
When launching codebrag via container:start
, settings from local.conf
file aren't loaded. It's probably do to how container
is started - either as a spawn process or without env vars of the host process (sbt)
As an admin I should be able to remove a user
in order to manage the users better.
When the user is deleted all his actions/comments should not be deleted.
So that I can ensure my code review comments are processed to completion and easily find the ones I wrote,
As a user
I want to see a list of my code review comments and status
Nice to have is a filter for all or only "open"/unprocessed ones.
First off, awesome tool. Very minimalist and fits our work flow exactly. We're excited to use it.
Only thing we were hoping to see but didn't was a few features for the diff viewer to make it a tad nicer:
In the meantime, we'll use a different viewer if we need these features
Thanks!
I added few git repositories and Codebrag shows me that I can review just commits from first one, the other shows always zero even when there are new commits from my collegues (I'm not Michal Kalis and those commit are not older than week).
I found that when I switch to some branches Codebrag displays this error message
but I was unable to find any logs about what went wrong in codebrag.log
.
Currently I have just added myself into the Codebrag but this shouldn't be problem I think. I also tried to "Mark as Reviewed" all the commits from the one repo, where I have some commits to review but this did not help either.
Is there any way how to output more information about "what went wrong"? I really like Codebrag but we're unable to use it in team because of this issue.
It would be nice to get syntax highlighted added for the file diffs as well as the comment markdown.
Inside my project architecture we are using git + issue tracker. Thus per feature/bug/enhance we create a ticket on our issue tracker and then review the issue (and not per commit).
Issue can contains 1 or more commit and I wanted to know if it's possible to create a single review for a bunch of commit representing a ticket?
It would be good to have a single view for this bunch of commit.
We just started using Codebrag at our company, and we'd like to have a way to assign a specific team member to review a commit so it shows up in their "to review" queue. This could be done by either an admin or by the committer themselves.
I couldn't find a way to do this in Codebrag 2.3.1, but it would be great if there was!
Tried to run codebrag on SLES AWS instance. Installed java 8_71, installed git, got the latest codebrag, but after running ./codebrag.sh I saw the following:
~/codebrag/codebrag-2.3.2 $ ./codebrag.sh start
Starting Codebrag in /home/ec2-user/codebrag/codebrag-2.3.2...
PID 2365
Logs are written to /home/ec2-user/codebrag/codebrag-2.3.2/logs/codebrag.log
But that pid wasn't found by 'ps -a', 'logs' directory wasn't even created. I created 'logs' directory, restarted application and found nothing there.
Then I run:
~/codebrag/codebrag-2.3.2 $ ./codebrag.sh status
Codebrag - Stopped incorrectly
I changed nothing in config file.
After all I run in verbose mode:
~/codebrag/codebrag-2.3.2 $ sudo sh -x codebrag.sh start
As an admin
I should be able to see progress of code reviews done by the team
In order to
Evaluate if code reviews are practiced regularly.
Suggested approach is to add a tab for 'ALL followups' which displays all the reviews which are open.
This view will be visible only of the admin. Admin user can see all the followups and discussion in this view.
Is there an API to tell codegrab to refresh a repo right now (instead of polling every 5 minutes) ?
It would be great if admin could filter out commits from COMMIT tab. In my project I've got number of commits produced by CI tool with changes only in pom files etc.
It would be nice to support viewing bare repositories.
repos/ABC.git
where config core.bare
= true
After changing history (with push -f
) of one repository codebrag can't pull it and stop working
ERROR c.s.c.repository.GitRepository - Cannot pull changes for repo /home/codebrag/codebrag-2.2/repos/somerepo because of: Checkout conflict with files:
Intead of pull it shoudl reset to branch to prevent failing.
Just noticed this exception in the logs, what does it mean? If this is expected perhaps it should be mentioned on the docs.
15:19:48.403 [codebrag-akka.actor.default-dispatcher-4] ERROR c.s.c.s.commits.CommitImportService - Cannot pull changes from upstream
org.eclipse.jgit.api.errors.WrongRepositoryStateException: Cannot pull into a repository with state: MERGING
Gravatar is not an option for me for security and privacy reasons. I would like to be able to upload my avatar/photo to differentiate me in conversations.
Alternatively, an "identicon" is also ok. https://en.wikipedia.org/wiki/Identicon
Wouldn't be nice to have a Vagrant file that will add in setting up/bootstrapping the app.
Or, perhaps Docker files
I got this problem when sending my first invitation email. Then I opened the log up and found some information below.
09:20:05.628 [qtp1920387277-41] ERROR o.fusesource.scalate.TemplateEngine - Compilation failed:
error: error while loading CharSequence, class file 'C:\Program Files\Java\jre1.8.0_65\lib\rt.jar(java/lang/CharSequence.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 15 at byte 1470)
one error found
09:20:05.631 [qtp1920387277-41] ERROR c.s.codebrag.rest.InvitationServlet - Something went wrong
org.fusesource.scalate.CompilerException: Compilation failed:
error: error while loading CharSequence, class file 'C:\Program Files\Java\jre1.8.0_65\lib\rt.jar(java/lang/CharSequence.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 15 at byte 1470)
one error found
at org.fusesource.scalate.support.ScalaCompiler.compile(ScalaCompiler.scala:105) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.compileAndLoad(TemplateEngine.scala:757) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.compileAndLoadEntry(TemplateEngine.scala:699) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.liftedTree1$1(TemplateEngine.scala:419) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:413) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:471) ~[codebrag.jar:2.3.2]
at org.fusesource.scalate.TemplateEngine.layout(TemplateEngine.scala:573) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.templates.TemplateEngine.prepareEmailTemplate(TemplateEngine.scala:20) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.templates.TemplateEngine.getEmailTemplate(TemplateEngine.scala:16) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.invitations.InvitationService.invitationMessage(InvitationService.scala:48) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.service.invitations.InvitationService.sendInvitation(InvitationService.scala:26) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.usecases.SendInvitationEmailUseCase.execute(SendInvitationEmailUseCase.scala:13) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet$$anonfun$2.apply$mcV$sp(InvitationServlet.scala:19) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet$$anonfun$2.apply(InvitationServlet.scala:16) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet$$anonfun$2.apply(InvitationServlet.scala:16) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$liftAction(ScalatraBase.scala:250) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:245) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:245) ~[codebrag.jar:2.3.2]
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet.withRouteMultiParams(InvitationServlet.scala:7) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.invoke(ScalatraBase.scala:244) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet.org$scalatra$json$JsonSupport$$super$invoke(InvitationServlet.scala:7) ~[codebrag.jar:2.3.2]
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:65) ~[codebrag.jar:2.3.2]
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:57) ~[codebrag.jar:2.3.2]
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet.withRouteMultiParams(InvitationServlet.scala:7) ~[codebrag.jar:2.3.2]
at org.scalatra.json.JsonSupport$class.invoke(JsonSupport.scala:57) ~[codebrag.jar:2.3.2]
at com.softwaremill.codebrag.rest.InvitationServlet.invoke(InvitationServlet.scala:7) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$7.apply(ScalatraBase.scala:220) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$7.apply(ScalatraBase.scala:218) ~[codebrag.jar:2.3.2]
at scala.Option.flatMap(Option.scala:170) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:218) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:217) ~[codebrag.jar:2.3.2]
at scala.collection.immutable.Stream.flatMap(Stream.scala:442) ~[codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.runRoutes(ScalatraBase.scala:217) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.runRoutes(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.runActions$1(ScalatraBase.scala:163) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply$mcV$sp(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$cradleHalt(ScalatraBase.scala:190) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.executeRoutes(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.withResponse(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60) [codebrag.jar:2.3.2]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.withRequest(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.withRequestResponse(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:111) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.org$scalatra$servlet$ServletBase$$super$handle(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.handle(ScalatraServlet.scala:49) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraServlet.service(ScalatraServlet.scala:54) [codebrag.jar:2.3.2]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [codebrag.jar:2.3.2]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648) [codebrag.jar:2.3.2]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71) [codebrag.jar:2.3.2]
at scala.Option.getOrElse(Option.scala:120) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$2.apply(ScalatraBase.scala:166) [codebrag.jar:2.3.2]
at scala.Option.getOrElse(Option.scala:120) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.runActions$1(ScalatraBase.scala:165) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply$mcV$sp(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$cradleHalt(ScalatraBase.scala:190) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:175) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.executeRoutes(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.2]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.withResponse(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60) [codebrag.jar:2.3.2]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.withRequest(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.withRequestResponse(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:111) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.org$scalatra$servlet$ServletBase$$super$handle(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.handle(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33) [codebrag.jar:2.3.2]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.2]
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32) [codebrag.jar:2.3.2]
at com.softwaremill.codebrag.web.TimingFilter.doFilter(TimingFilter.scala:6) [codebrag.jar:2.3.2]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307) [codebrag.jar:2.3.2]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [codebrag.jar:2.3.2]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) [codebrag.jar:2.3.2]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.Server.handle(Server.java:365) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998) [codebrag.jar:2.3.2]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856) [codebrag.jar:2.3.2]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) [codebrag.jar:2.3.2]
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [codebrag.jar:2.3.2]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) [codebrag.jar:2.3.2]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) [codebrag.jar:2.3.2]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [codebrag.jar:2.3.2]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [codebrag.jar:2.3.2]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_65]
In addition, I installed the codebrag on local server with Windows 7 64 bit OS. The Java version is 7 update 21.
Hello guys,
I have strange problem and i can't solved it. I installed codebrag on my VPS with ubuntu. All look fine because codebrag is runing. But if i run codebrag in browser then i received.:
Forbidden
You don't have permission to access / on this server.
I changed chmod and it doesn't work. Maybe it is related with apache, because in main codebrag folder i dont have index file
and apache can't start. I guess.
Please help:)
We have an eXtreme Feedback Panel showing build failed / unstable. Basic idea is to have a simple script that will curl the codebrag API to check if there are too many commits waiting for review.
If more than N commits -> build unstable, and more than M -> build failed \o/
It may be related to another API : #3
The https://github.com/softwaremill/codebrag/wiki/Installation#step-1-clone-your-repository guide wants the git svn clone operation to pull down the entire (lengthy!) history of the SVN repo
Is that necessary? Can a shallower clone be performed?
We will not, as a rule, be performing code reviews of code of historic interest only.
First, thank you for your nice tool I use to review teammate changes
Second, I open this issue to "discuss" about adding context (I'm not saying that I got a "great" idea, but simply trying to give you some "user" feedback).
During some reviews, I don't have enought "context" : 3 lines before and after a change is sometimes not enought to my point of view. The solution, to my eyes, can be to have a link to see the "whole file diff".
What do you think of such a feature ?
Comparing the couple good code review options out there would be much easier if you guys had a live demo too!
We have a lot of repositories and when I'm doing code review I can just see the branch and how many commits left to review but I cannot see the current repo. I always have to hover over the change repo button. It would be nic to have repo name right there same as the branch name, I think that there is a lot of place for it even on smaller displays.
It should be thrown away and normal UUID used instead.
When reviewing some files, I had to scroll up to the commit message to have precision and understand goal of code updates.
To do this, I tried to update css of the div having class="authored-box" :
top: 0;
position: absolute;
padding-top: 2em;
padding-bottom: 2em;
background-color: white;
width: 94%;
But with this, the first diff is partly hidden because it is behind the commit message and some elements (line numbers, dots) are above the authored-box while scrolling :
I've noticed codebrag needs a restart as the frontend dissapears after some time.
Has anyone noticed this?
Couple of things I've noticed on the logs:
Service - Cannot pull changes from upstream
org.eclipse.jgit.api.errors.TransportException: [email protected]: Session.connect: java.net.SocketException: C
onnection reset
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:137) ~[codebrag.jar:2.3.1]
14:03:53.201 [qtp451189693-49] ERROR c.s.codebrag.rest.CommitsServlet - Something went wrong
org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY_KEY_26 ON PUBLIC.""reviewed_commits""(""user_id"", ""sha"", ""repo_name"") VALUES ( /* key:30 */ '54bcc8dce4b042c63284e4ff', 'f366990e1eddf12b1bdd1b6425258108f6d0e8f3', null, 'wh-debit-card-batch')"; SQL statement:
INSERT INTO "reviewed_commits" ("sha","user_id","repo_name","review_date") VALUES (?,?,?,?) [23505-175]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332) ~[codebrag.jar:2.3.1]
It would be nice to know what revision you are reviewing so it is simple to make a reference to your colleague.
For example:
<Commit Message>
<Author> <Some Time ago> <Git revision hash>
Without waiting for an hour (or next day at 6) ?
I think it would be very useful if commit messages are parsed looking for strings that look like issue number (like #12345) that get automatically changed to a link to the corresponding bug in an external bug tracker (configurable in the config file). Kallithea supports this and it works very nicely.
This would simply make anything that looks like an issue number in a commit a hyperlink to your bug tracker.
Hello,
the email configuration needs to have an email property to set mail.smtp.auth to true otherwise authentification with a user/password not work without ssl... (in javadoc, the default value is false)
Thanks !
Hi,
Our team is starting to use codebrag (but not code reviews, we are used to it now) and we were wondering if it would be possible to review a full branch diff because we are strictly working with git branches for each fix/feat.
Reviewing each commit can help understanding all the way of thinking through time and code but sometimes one experiment does not remain at the end of the implementation or has completely changed. ๐
EDIT: What I'm thinking of is the GitHub Pull Request files view
Hi,
Are you planning to allow to commenting multiple lines at once (code block)?
I have not yet read enough of your source code but I can imagine that would require structural changes and/or refactoring.
Thank you ๐
Hello there,
is it currently possible to become an email when someone pushes
a new branch to the repo (without a hook ;-)
Could this become a new possible feature in current releases?
cheers,
werner.
Hi,
I am trying to install codebrag, we have created the clone of our project from SVN using the git svn clone command. Our project SVN is SSH authenticated. Since i did not have access to clone, my sysadmin did it for me. Now after running the codebrag.bat codebrag comes up and shows a wait message that it is trying to get update from repository. However it hangs there. The log file shows a null pointer exception, when trying to get latest revision number. Below is the error trace.
15:29:57.285 [main] INFO com.softwaremill.codebrag.Codebrag$ - Codebrag started on 0.0.0.0/0.0.0.0:8090
15:30:05.165 [Thread-19] INFO c.s.c.repository.GitSvnRepository - fatal: bad revision 'HEAD'
15:30:05.171 [Thread-19] INFO c.s.c.repository.GitSvnRepository - rev-list --first-parent --pretty=medium HEAD --: command returned error: 128
15:30:05.171 [Thread-19] INFO c.s.c.repository.GitSvnRepository -
15:30:05.223 [codebrag-akka.actor.default-dispatcher-3] ERROR c.s.c.s.commits.CommitImportService - Cannot import repository commits
java.lang.NullPointerException: null
at org.eclipse.jgit.lib.ObjectIdOwnerMap.get(ObjectIdOwnerMap.java:131) ~[codebrag.jar:2.3.1]
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:815) ~[codebrag.jar:2.3.1]
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:730) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.repository.RepositoryDeltaLoader$class.setRangeStart(RepositoryDeltaLoader.scala:36) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.repository.RepositoryDeltaLoader$class.com$softwaremill$codebrag$repository$RepositoryDeltaLoader$$getCommitsForBranch(RepositoryDeltaLoader.scala:18) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.repository.RepositoryDeltaLoader$$anonfun$1.apply(RepositoryDeltaLoader.scala:28) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.repository.RepositoryDeltaLoader$$anonfun$1.apply(RepositoryDeltaLoader.scala:27) ~[codebrag.jar:2.3.1]
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[codebrag.jar:2.3.1]
I just followed the installation guide, i just gave a passphrase (as suggested). Do i have to configure the SSH key anywhere? Do i have to provide the passphrase of the user who did the clone? Please help with this.
The way our team uses CodeBrag, problems that are found during review are corrected in another commit, then the developer replies to the original comment with a new one indicating the commit SHA in which the issue was fixed. In our usage, that SHA doesn't get changed to a link to the corresponding commit in CodeBrag.
Basically we'd like it if it worked like how GitHub does it. Here's an example: 893d7fc
I have a codebrag on a CentOS in the CEST timezone. My browser is in the CEST timezone too. And the date of commits and comments are wrong (shift of 2 hours).
It's because when my browser receive the commits (for example), the json is like this :
{"commit":[{"id":"xxx","repoName":"xxx","sha":"xxx"
,"message":"correction code propre\n\naddresses #14895\n\ngit-svn-id: http://xxx/svn
xxx@38455 a77b0ce4-d186-493e-baf1-5dd2f1cda47c\n","authorName":"xxx","authorEmail"
:"xxx@xxx","date":"2015-10-05T10:27:33Z","state":"AwaitingUserReview"
,"authorAvatarUrl":"xxx","reviewers"
:[]}],"older":0,"newer":0}
As you can see, the date is 2015-10-05T10:27:33Z
. But it is wrong. The correct date should be this date in the CEST timezone (so GMT +2 during summer). So the browser javascript just shift the date of 2 hours at displaying.
Hello. I have problem with codebrag. After upgrading my debian server from squeeze to wheezy I no longer can log into Codebrag. I don't know if it's because of change in system's configuration or because of codebrag being killed when restarting server, but I get following error. Is there anything I can do about it?
00:20:11.494 [shutdownHook1] INFO o.scalatra.servlet.ScalatraListener - Destroying life cycle class: ScalatraBootstrap
00:20:11.655 [shutdownHook1] INFO o.e.j.server.handler.ContextHandler - stopped o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-9090-webapp-_-any-/webapp/},jar:file:/home/xxxx/codebrag-2.3.1/codebrag.jar!/webapp
00:20:11.722 [shutdownHook1] INFO com.softwaremill.codebrag.Codebrag$ - Codebrag stopped
00:20:26.553 [main] INFO org.eclipse.jetty.server.Server - jetty-8.y.z-SNAPSHOT
00:20:26.672 [main] INFO o.e.jetty.webapp.WebInfConfiguration - Extract jar:file:/home/xxxx/codebrag-2.3.1/codebrag.jar!/webapp/ to /tmp/jetty-0.0.0.0-9090-webapp-_-any-/webapp
00:20:29.670 [main] INFO o.e.j.w.StandardDescriptorProcessor - NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
00:20:29.764 [main] INFO o.e.j.server.handler.ContextHandler - started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-9090-webapp-_-any-/webapp/},jar:file:/home/xxxx/codebrag-2.3.1/codebrag.jar!/webapp
00:20:29.765 [main] INFO o.e.j.server.handler.ContextHandler - started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-9090-webapp-_-any-/webapp/},jar:file:/home/xxxx/codebrag-2.3.1/codebrag.jar!/webapp
00:20:29.769 [main] INFO o.scalatra.servlet.ScalatraListener - The cycle class name from the config: ScalatraBootstrap
00:20:30.018 [main] INFO o.scalatra.servlet.ScalatraListener - Initializing life cycle class: ScalatraBootstrap
00:20:30.921 [codebrag-akka.actor.default-dispatcher-5] INFO akka.event.slf4j.Slf4jEventHandler - Slf4jEventHandler started
00:20:30.997 [main] INFO c.s.codebrag.dao.sql.SQLDatabase$ - Using an embedded database, with data files located at: /home/xxxx/codebrag-2.3.1/data/codebrag
00:20:31.158 [MLog-Init-Reporter] INFO com.mchange.v2.log.MLog - MLog clients using log4j logging.
00:20:31.666 [main] INFO com.mchange.v2.c3p0.C3P0Registry - Initializing c3p0-0.9.5-pre6 [built 07-December-2013 02:33:38 +0000; debug? true; trace: 10]
00:20:32.206 [main] INFO c.m.v.c.i.AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> m2bwae9a1gfwk8g1dfldtt|d7dd0a0, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.h2.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> m2bwae9a1gfwk8g1dfldtt|d7dd0a0, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:h2:file:/home/xxxx/codebrag-2.3.1/data/codebrag, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
00:20:34.538 [main] INFO c.s.codebrag.backup.BackupScheduler$ - Scheduled embedded database backups to run every day at 5:00 UTC.
00:20:37.178 [main] INFO ScalatraBootstrap - Sending anonymous statistics was disabled - not scheduling stats calculation
00:20:37.526 [main] INFO o.e.j.server.handler.ContextHandler - started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-9090-webapp-_-any-/webapp/},jar:file:/home/xxxx/codebrag-2.3.1/codebrag.jar!/webapp
00:20:37.572 [main] INFO o.e.jetty.server.AbstractConnector - Started [email protected]:9090
00:20:37.573 [main] INFO com.softwaremill.codebrag.Codebrag$ - Codebrag started on 0.0.0.0/0.0.0.0:9090
00:21:06.904 [qtp1449000407-30] ERROR c.s.codebrag.rest.SessionServlet - Something went wrong
java.util.NoSuchElementException: next on empty iterator
at scala.collection.Iterator$$anon$2.next(Iterator.scala:39) ~[codebrag.jar:2.3.1]
at scala.collection.Iterator$$anon$2.next(Iterator.scala:37) ~[codebrag.jar:2.3.1]
at scala.collection.IterableLike$class.head(IterableLike.scala:91) ~[codebrag.jar:2.3.1]
at scala.collection.AbstractIterable.head(Iterable.scala:54) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.finders.browsingcontext.UserBrowsingContextFinder$$anonfun$2.apply(UserBrowsingContextFinder.scala:45) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.finders.browsingcontext.UserBrowsingContextFinder$$anonfun$2.apply(UserBrowsingContextFinder.scala:39) ~[codebrag.jar:2.3.1]
at scala.Option.map(Option.scala:145) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.finders.browsingcontext.UserBrowsingContextFinder.findUserDefaultContext(UserBrowsingContextFinder.scala:39) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.finders.user.UserFinder.findLoggedInUser(UserFinder.scala:15) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet$$anonfun$4.apply(SessionServlet.scala:25) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet$$anonfun$4.apply(SessionServlet.scala:23) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$liftAction(ScalatraBase.scala:250) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:245) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:245) ~[codebrag.jar:2.3.1]
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet.withRouteMultiParams(SessionServlet.scala:8) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.invoke(ScalatraBase.scala:244) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet.org$scalatra$json$JsonSupport$$super$invoke(SessionServlet.scala:8) ~[codebrag.jar:2.3.1]
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:65) ~[codebrag.jar:2.3.1]
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:57) ~[codebrag.jar:2.3.1]
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet.withRouteMultiParams(SessionServlet.scala:8) ~[codebrag.jar:2.3.1]
at org.scalatra.json.JsonSupport$class.invoke(JsonSupport.scala:57) ~[codebrag.jar:2.3.1]
at com.softwaremill.codebrag.rest.SessionServlet.invoke(SessionServlet.scala:8) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$7.apply(ScalatraBase.scala:220) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$7.apply(ScalatraBase.scala:218) ~[codebrag.jar:2.3.1]
at scala.Option.flatMap(Option.scala:170) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:218) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:217) ~[codebrag.jar:2.3.1]
at scala.collection.immutable.Stream.flatMap(Stream.scala:442) ~[codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.runRoutes(ScalatraBase.scala:217) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.runRoutes(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.runActions$1(ScalatraBase.scala:163) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply$mcV$sp(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$cradleHalt(ScalatraBase.scala:190) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.executeRoutes(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.withResponse(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60) [codebrag.jar:2.3.1]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.withRequest(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.withRequestResponse(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:111) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.org$scalatra$servlet$ServletBase$$super$handle(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.handle(ScalatraServlet.scala:49) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraServlet.service(ScalatraServlet.scala:54) [codebrag.jar:2.3.1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [codebrag.jar:2.3.1]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648) [codebrag.jar:2.3.1]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71) [codebrag.jar:2.3.1]
at scala.Option.getOrElse(Option.scala:120) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$2.apply(ScalatraBase.scala:166) [codebrag.jar:2.3.1]
at scala.Option.getOrElse(Option.scala:120) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.runActions$1(ScalatraBase.scala:165) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply$mcV$sp(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$cradleHalt(ScalatraBase.scala:190) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:175) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.executeRoutes(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:113) [codebrag.jar:2.3.1]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.withResponse(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60) [codebrag.jar:2.3.1]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.withRequest(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.withRequestResponse(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:111) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.org$scalatra$servlet$ServletBase$$super$handle(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.handle(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33) [codebrag.jar:2.3.1]
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) [codebrag.jar:2.3.1]
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32) [codebrag.jar:2.3.1]
at com.softwaremill.codebrag.web.TimingFilter.doFilter(TimingFilter.scala:6) [codebrag.jar:2.3.1]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307) [codebrag.jar:2.3.1]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [codebrag.jar:2.3.1]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) [codebrag.jar:2.3.1]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.Server.handle(Server.java:365) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988) [codebrag.jar:2.3.1]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635) [codebrag.jar:2.3.1]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [codebrag.jar:2.3.1]
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [codebrag.jar:2.3.1]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) [codebrag.jar:2.3.1]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) [codebrag.jar:2.3.1]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [codebrag.jar:2.3.1]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [codebrag.jar:2.3.1]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.