Git Product home page Git Product logo

codebrag's People

Contributors

adamw avatar amorfis avatar apuchta avatar gerits avatar kciesielski avatar loziniak avatar lukaszlenart avatar maciej avatar marynaaleksandrova avatar mchmielarz avatar mikolak-net avatar mmatloka avatar mostr avatar pawelwrzeszcz avatar pbuda avatar rohanhart avatar rucek avatar szimano avatar tdziurko avatar twasyl avatar unodgs avatar zuchos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codebrag's Issues

Unknown host key bitbucket.org. RSA key fingerprint

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.

Codebrag frontend slow on large commit (like a svn branch creation)

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

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.

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?

Authentication not supported when pulling from TFS git repo

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?

Issue with branch / to review drop downs

When reviewing a svn hosted project, the drop down menu are not side by side :

image

while on a git project it's ok :
image

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 :

  • the div containing the "ReposCtrl" have classes "small-7 large-7" and is ok if I apply "small-2 large-2" instead
  • the "to review div" have "small-11 large-11" and is ok if I apply "small-9 large-9" instead

Regards

User dropdown is not clickable

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:

http://youtu.be/trf2cLSgNC8

Open file in IntelliJ IDEa - plugin integration

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/

  • so far it works with simple file name, but I can change it to work with full paths to avoid issues with many files with same name.

container:start doesn't read local.conf

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)

Remove a user

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.

Page that lists user's code review comments and status

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.

Improved Diff Viewer

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:

  • Ability to ignore whitespace
  • Ability to change context shown
  • Side-by-side view

In the meantime, we'll use a different viewer if we need these features

Thanks!

To review shows zero

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).
screen shot 2014-12-10 at 6 27 24
I found that when I switch to some branches Codebrag displays this error message
screen shot 2014-12-10 at 6 39 30
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.

Syntax Highlighting

It would be nice to get syntax highlighted added for the file diffs as well as the comment markdown.

Ability to review a bunch of commits in order to integrate better with issue tracker

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.

Assign a team member to review a 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!

Only 'Stopped incorrectly'

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

  • '[' -z ']'
    ++ pwd
  • CURRENT_DIR=/home/ec2-user/codebrag/codebrag-2.3.2
  • '[' '!' -f /home/ec2-user/codebrag/codebrag-2.3.2/codebrag.jar ']'
  • CODEBRAG_HOME=/home/ec2-user/codebrag/codebrag-2.3.2
  • APP_NAME=Codebrag
    CODEBRAG_HOME=/home/ec2-user/codebrag/codebrag-2.3.2
  • APP_NAME=Codebrag
  • APP_FILENAME=codebrag
  • APP_PATH=/home/ec2-user/codebrag/codebrag-2.3.2
  • APP_PID=/home/ec2-user/codebrag/codebrag-2.3.2/codebrag.pid
  • APP_FILE=/home/ec2-user/codebrag/codebrag-2.3.2/codebrag.jar
  • APP_CONFIG_FILE=/home/ec2-user/codebrag/codebrag-2.3.2/codebrag.conf
  • APP_LOG_CONFIG_FILE=/home/ec2-user/codebrag/codebrag-2.3.2/logback.xml
  • APP_COMMAND='java -Dfile.encoding=UTF-8 -Dconfig.file=/home/ec2-user/codebrag/codebrag-2.3.2/codebrag.conf -Dlogback.configurationFile=/home/ec2-user/codebrag/codebrag-2.3
    .2/logback.xml -jar /home/ec2-user/codebrag/codebrag-2.3.2/codebrag.jar'
  • case "$1" in
  • start
  • checkpid
  • local TMP_FILE=/home/ec2-user/codebrag/codebrag-2.3.2/status_codebrag
  • local STATUS=9
  • '[' -f /home/ec2-user/codebrag/codebrag-2.3.2/codebrag.pid ']'
  • grep --color=never /home/ec2-user/codebrag/codebrag-2.3.2/codebrag.jar
    ++ cat /home/ec2-user/codebrag/codebrag-2.3.2/codebrag.pid
  • ps -fp 2365
  • '[' -f /home/ec2-user/codebrag/codebrag-2.3.2/status_codebrag -a -s /home/ec2-user/codebrag/codebrag-2.3.2/status_codebrag ']'
  • STATUS=2
  • rm -f /home/ec2-user/codebrag/codebrag-2.3.2/status_codebrag
  • return 2
  • STATUS=2
  • '[' 2 -ne 0 ']'
  • echo 'Starting Codebrag in /home/ec2-user/codebrag/codebrag-2.3.2...'
    Starting Codebrag in /home/ec2-user/codebrag/codebrag-2.3.2...
  • cd /home/ec2-user/codebrag/codebrag-2.3.2
  • ./preconditions.sh
  • CHECK_STATUS=0
  • '[' 0 -ne 0 ']'
  • echo PID 2485
    PID 2485
  • echo 2485
  • echo 'Logs are written to /home/ec2-user/codebrag/codebrag-2.3.2/logs/codebrag.log'
    Logs are written to /home/ec2-user/codebrag/codebrag-2.3.2/logs/codebrag.log
  • exit 0

Tracking the followups

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.
image

Filtering irrelevant commits

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.

`push -f` breaks codebrag

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.

Cannot pull into a repository with state: MERGING

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

Bootstrap env. for codebrag

Wouldn't be nice to have a Vagrant file that will add in setting up/bootstrapping the app.
Or, perhaps Docker files

Failed Preparing Email Template

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.

Forbidden - no chmod permissions problem

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:)

API to know number of commits waiting for review

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

How does StatisticEventsCollector work

I am trying to display weekly statistics similar to the one below. However the events table does not get updated when there is an activity. Is it dependent on send-anon-usage-data = false ?
How is the events table updated ?

image

Missing context when reviewing

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 ?

Live demo please!

Comparing the couple good code review options out there would be much easier if you guys had a live demo too!

Indicate current repo

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.
screen shot 2014-12-12 at 9 10 54

Keep commit message on top of diffs

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 :

image

Codebrang needs a restart every now and again

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:

  1. occasionally the git repo is not availible
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]
  1. Noticed these exceptions in the logs when pressing "Mark commit as reviewed"
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]

Show git revision hash

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>

Super-simple bug tracker integration

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.

email

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 !

Review branch diff instead of atomic commits

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

Comment multiple lines

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 ๐Ÿ˜‰

New branch notification

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.

Help needed with GIT-SVN repos

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.

Commit SHA linking

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

Bad timezone for date in browser

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.

error after upgrading/restarting server - cannot login

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]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.