How to handle BubblingException - project-reactor

I have two Monos, which are making a web request and I use Mono.zip to merge the result. If one of the request is in error I try to handle the error with onErrorMap to transform the exception, which will later be processed by my custom WebExceptionHandler. But by doing that I get this Exception, which is not handled by Reactor:
reactor.core.Exceptions$BubblingException: javax.net.ssl.SSLException: SSLEngine closed already
at reactor.core.Exceptions.bubble(Exceptions.java:154) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.core.publisher.Operators.onErrorDropped(Operators.java:256) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.ipc.netty.channel.ContextHandler.fireContextError(ContextHandler.java:272) ~[reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.http.client.HttpClientOperations.onOutboundError(HttpClientOperations.java:502) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.ChannelOperations.onError(ChannelOperations.java:232) ~[reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:1332) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.core.publisher.Operators$MonoSubscriber.onError(Operators.java:1135) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreInner.onError(MonoIgnoreThen.java:229) ~[reactor-core-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at reactor.ipc.netty.FutureMono$FutureSubscription.operationComplete(FutureMono.java:159) ~[reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:481) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.DelegatingChannelPromiseNotifier.operationComplete(DelegatingChannelPromiseNotifier.java:57) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.DelegatingChannelPromiseNotifier.operationComplete(DelegatingChannelPromiseNotifier.java:31) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:481) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.DelegatingChannelPromiseNotifier.operationComplete(DelegatingChannelPromiseNotifier.java:57) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.DelegatingChannelPromiseNotifier.operationComplete(DelegatingChannelPromiseNotifier.java:31) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122) [netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.wrap(SslHandler.java:789) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.wrapAndFlush(SslHandler.java:752) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:733) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:1586) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.closeOutboundAndChannel(SslHandler.java:1565) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.ssl.SslHandler.close(SslHandler.java:691) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.handler.logging.LoggingHandler.close(LoggingHandler.java:217) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.close(CombinedChannelDuplexHandler.java:507) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.ChannelOutboundHandlerAdapter.close(ChannelOutboundHandlerAdapter.java:71) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.CombinedChannelDuplexHandler.close(CombinedChannelDuplexHandler.java:318) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.ChannelDuplexHandler.close(ChannelDuplexHandler.java:73) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:465) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:973) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.AbstractChannel.close(AbstractChannel.java:238) [netty-transport-4.1.17.Final.jar:4.1.17.Final]
at reactor.ipc.netty.http.client.HttpClientOperations.onInboundCancel(HttpClientOperations.java:256) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.FluxReceive.unsubscribeReceiver(FluxReceive.java:385) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.FluxReceive.lambda$new$0(FluxReceive.java:67) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.FluxReceive.cancelReceiver(FluxReceive.java:136) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.FluxReceive.cancel(FluxReceive.java:77) [reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.PooledClientContextHandler.disposeOperationThenRelease(PooledClientContextHandler.java:251) ~[reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at reactor.ipc.netty.channel.PooledClientContextHandler.lambda$dispose$2(PooledClientContextHandler.java:233) ~[reactor-netty-0.7.2.RELEASE.jar:0.7.2.RELEASE]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) ~[netty-common-4.1.17.Final.jar:4.1.17.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) ~[netty-transport-4.1.17.Final.jar:4.1.17.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) ~[netty-common-4.1.17.Final.jar:4.1.17.Final]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_112]
Caused by: javax.net.ssl.SSLException: SSLEngine closed already
at io.netty.handler.ssl.SslHandler.wrap(...)(Unknown Source) [netty-handler-4.1.17.Final.jar:4.1.17.Final]
I guess it is because I cancel the request not in error, which is resulting in the BubblingException. Exemple:
private fun <T> createMono(clientResponse: ClientResponse, tClass: Class<T>): Mono<T> {
return if (clientResponse.statusCode().value() != 200) {
Mono.error<T>(RestClientException(clientResponse, errorMapper))
} else if (!clientResponse.headers().contentType().isPresent) {
Mono.empty<T>()
} else {
clientResponse.bodyToMono(tClass)
}
}
fun getResponse(serverRequest: ServerRequest): Mono<ServerResponse>{
val mono1 : Mono<Foo> = WebClient....flatMap { clientResponse -> createMono(clientResponse, Foo.class) }
val mono2 : Mono<Bar> = WebClient....flatMap { clientResponse -> createMono(clientResponse, Bar.class) }
return ServerResponse.ok().body(Mono.zip(mono0, mono1)
.map {mymappinfunction(it)}
.onErrorMap { ex -> MyCustomException(ex) },MyClass::class.java)
}

I have migrated to spring boot m7 (m6 previously) and i am not able to reproduce this error anymore

Related

Grails 5 upgrade using Neo4j database receives ResultConsumedException on database queries

I am working on upgrading a Grails application from v4 to v5. We use Neo4j as the backend database (currently v3.5). I can get the application to run, but queries to the database result in the following exception:
org.neo4j.driver.exceptions.ResultConsumedException: Cannot access records on this result any more as the result has already been consumed or the query runner where the result is created has already been closed.
at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:144)
at org.neo4j.driver.internal.InternalResult.blockingGet(InternalResult.java:122)
at org.neo4j.driver.internal.InternalResult.hasNext(InternalResult.java:58)
at org.grails.datastore.gorm.query.AbstractResultList$1.hasNext(AbstractResultList.java:168)
at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:466)
at java.base/java.lang.String.valueOf(String.java:2951)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:172)
at java.base/java.util.AbstractMap.toString(AbstractMap.java:556)
at java.base/java.lang.String.valueOf(String.java:2951)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:172)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:310)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:219)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:213)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:102)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:93)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:219)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:213)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:219)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:213)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:64)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Suppressed: org.neo4j.driver.internal.util.ErrorUtil$InternalExceptionCause: null
at org.neo4j.driver.internal.util.ErrorUtil.newResultConsumedError(ErrorUtil.java:63)
at org.neo4j.driver.internal.cursor.DisposableAsyncResultCursor.assertNotDisposed(DisposableAsyncResultCursor.java:112)
at org.neo4j.driver.internal.cursor.DisposableAsyncResultCursor.peekAsync(DisposableAsyncResultCursor.java:66)
... 104 common frames omitted
The build.gradle file is as follows. We are currently using Gradle v7.4.1:
buildscript {
repositories {
maven { url "https://repo.grails.org/grails/core" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsGradlePluginVersion"
classpath "gradle.plugin.com.github.erdi.webdriver-binaries:webdriver-binaries-gradle-plugin:2.0"
classpath "com.bertramlabs.plugins:asset-pipeline-gradle:3.3.4"
classpath "org.owasp:dependency-check-gradle:6.3.1"
}
}
version "0.1"
group "org.myorg.myapp"
apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"com.github.erdi.webdriver-binaries"
apply plugin:"com.bertramlabs.asset-pipeline"
apply plugin:"org.grails.grails-gsp"
apply plugin: "org.owasp.dependencycheck"
ext {
drivers = ["firefox", "chrome", "chromeHeadless"]
}
repositories {
maven { url "https://repo.grails.org/grails/core" }
mavenCentral()
}
sourceSets {
integrationTest {
groovy {
srcDir file("src/integration-test/groovy")
compileClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
runtimeClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
}
resources.srcDir file("src/integration-test/resources")
}
}
bootWar {
archiveName "ROOT.war"
}
configurations {
integrationTestCompile.extendsFrom testCompileOnly
integrationTestRuntime.extendsFrom testRuntimeOnly
integrationTestImplementation.extendsFrom testImplementation
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
dependencies {
developmentOnly "org.springframework.boot:spring-boot-devtools"
implementation "org.springframework.boot:spring-boot-starter-logging"
implementation "org.springframework.boot:spring-boot-autoconfigure"
implementation "org.grails:grails-core"
implementation "org.grails:grails-web-boot"
implementation "org.grails:grails-logging"
implementation "org.grails:grails-plugin-databinding"
implementation "org.grails:grails-plugin-i18n"
implementation "org.grails.plugins:async"
implementation "org.grails.plugins:scaffolding"
implementation "org.grails:grails-plugin-rest"
implementation "org.grails.plugins:events"
implementation "org.grails.plugins:cache"
implementation "org.grails:grails-plugin-url-mappings"
implementation "org.grails:grails-plugin-interceptors"
implementation "org.grails.plugins:gsp"
implementation group: "org.grails.plugins", name: "spring-security-core", version: "4.0.3"
implementation "org.grails.plugins:mail:3.0.0"
implementation group: "org.springframework", name: "spring-core", version: "5.3.16"
implementation group: "org.codehaus.groovy", name: "groovy-dateutil"
implementation group: "org.grails", name: "grails-plugin-services"
implementation group: "org.springframework.boot", name: "spring-boot-starter-tomcat"
implementation group: "org.springframework.boot", name: "spring-boot-starter-actuator"
implementation group: "org.springframework.boot", name: "spring-boot-starter-validation"
implementation group: "org.grails.plugins", name: "neo4j"
implementation files("lib/dxlclient-0.2.7.jar")
implementation group: "org.grails.plugins", name: "spring-security-ui", version: "4.0.0.M1"
implementation group: "io.jsonwebtoken", name: "jjwt-api", version: "0.11.2"
implementation group: "io.jsonwebtoken", name: "jjwt-impl", version: "0.11.2"
implementation group: "io.jsonwebtoken", name: "jjwt-jackson", version: "0.11.2"
implementation group: "com.opencsv", name: "opencsv", version: "5.6"
implementation group: "org.apache.poi", name: "poi-ooxml", version: "5.2.1"
implementation "org.quartz-scheduler:quartz"
implementation "org.grails.plugins:quartz:2.0.13"
testImplementation group: "org.grails", name: "grails-web-testing-support"
testImplementation group: "com.h2database", name: "h2"
testImplementation "io.micronaut:micronaut-inject-groovy"
console "org.grails:grails-console"
profile "org.grails.profiles:web"
runtimeOnly "org.glassfish.web:el-impl:2.2.1-b05"
runtimeOnly "org.apache.tomcat:tomcat-jdbc"
runtimeOnly "javax.xml.bind:jaxb-api"
runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails:3.3.1"
testImplementation "org.grails:grails-gorm-testing-support"
testImplementation "org.mockito:mockito-core"
testImplementation "org.seleniumhq.selenium:selenium-remote-driver:3.14.0"
testImplementation "org.seleniumhq.selenium:selenium-api:3.14.0"
integrationTestImplementation group: "org.grails.plugins", name: "geb"
testImplementation "org.seleniumhq.selenium:selenium-chrome-driver:3.141.59"
testImplementation "org.seleniumhq.selenium:selenium-firefox-driver:3.141.59"
testImplementation group: "io.github.bonigarcia", name: "webdrivermanager", version: "5.1.0"
implementation group: "org.codehaus.janino", name: "janino", version: "3.1.6"
}
bootRun {
jvmArgs(
"-Dspring.output.ansi.enabled=always",
"-noverify",
"-XX:TieredStopAtLevel=1",
"-Xmx1024m")
sourceResources sourceSets.main
String springProfilesActive = "spring.profiles.active"
systemProperty springProfilesActive, System.getProperty(springProfilesActive)
}
springBoot {
mainClass.set("org.myorg.Application")
}
integrationTest {
systemProperties System.properties
outputs.upToDateWhen { false }
// For debugging
// testLogging.showExceptions = true
// testLogging.showStandardStreams = true
// testLogging.exceptionFormat = "full"
// toggle for UI tests
// exclude "UI/**"
}
tasks.withType(Test) {
maxHeapSize = "2g"
jvmArgs "-XX:MaxMetaspaceSize=1024m"
testLogging {
exceptionFormat = "full"
}
}
tasks.withType(GroovyCompile) {
groovyOptions.forkOptions.memoryMaximumSize = "256m"
}
assets {
minifyJs = true
minifyCss = true
}
dependencyCheck {
formats=["HTML","JUNIT"]
suppressionFile="${rootProject.projectDir}/suppression.xml"
String environment = System.getenv("DEPENDENCY_CHECK_ENV")
if (environment.equals("PRODUCTION")) {
failBuildOnCVSS=7.0
}
}
The gradle.properties file:
grailsVersion=5.1.3
grailsGradlePluginVersion=5.1.3
groovyVersion=3.0.7
gormVersion=7.2.1
Any suggestions for resolving this issue would be greatly appreciated.
UPDATE 3/21/2022: If I debug my upgraded application and step through the code, everything works fine. If I turn off debugging, and simply run the application from my IDE, then I get the ResultConsumedException all throughout the application. This behavior seems to indicate that a race condition is occurring...possibly a bug?
SOLUTION: I found some improper usages of the GORM #Transactional annotation in our code. The latest version of GORM must be more strict in enforcing adherence to its specification. After adding or removing the #Transactional annotation to/from various application classes and methods, everything started working without any code changes.

Jenkins can't save new project or can't update configuration of existing ones

I'm using Jenkins 2.286 version on Windows 10.
I need to use the bitbucket hooks to trigger build when any pr merge made on the repository.
I've installed necessary plugins to communicate with bitbucket through jenkins.
When I try without "Build with BitBucket Push and Pull Request Plugin" section, the submit operation succeeds.
But if I click the checkbox of "Build with BitBucket Push and Pull Request Plugin" as i required and
set "Build with BitBucket Push and Pull Request Plugin" triggers as documented, I can't submit the configuration form. The error message is
JSONObject["io-jenkins-plugins-bitbucketpushandpullrequest-BitBucketPPRTrigger"] is not a JSONObject.
All plugins are up-to-date with their latest versions.
I would be grateful if anyone could help with this issue.
Here is Auto-generated post data when clicked save/apply button at configuration page;
{
"description":"Continuous integration for My.Simple.Project solution.",
"properties":{
"stapler-class-bag":"true",
"hudson-model-ParametersDefinitionProperty":{
"specified":false
},
"jenkins-model-BuildDiscarderProperty":{
"specified":true,
"":"0",
"strategy":{
"daysToKeepStr":"",
"numToKeepStr":"100",
"artifactDaysToKeepStr":"",
"artifactNumToKeepStr":"",
"stapler-class":"hudson.tasks.LogRotator",
"$class":"hudson.tasks.LogRotator"
}
},
"com-coravy-hudson-plugins-github-GithubProjectProperty":{
},
"jenkins-branch-RateLimitBranchProperty$JobPropertyImpl":{
}
},
"disable":false,
"concurrentBuild":false,
"hasCustomQuietPeriod":false,
"quiet_period":"5",
"hasCustomScmCheckoutRetryCount":false,
"scmCheckoutRetryCount":"0",
"blockBuildWhenUpstreamBuilding":false,
"blockBuildWhenDownstreamBuilding":false,
"hasCustomWorkspace":false,
"customWorkspace":"",
"displayNameOrNull":"",
"scm":{
"value":"3",
"stapler-class":"hudson.plugins.git.GitSCM",
"$class":"hudson.plugins.git.GitSCM",
"userRemoteConfigs":{
"url":"https://bitbucket.org/sonerpyci/My.Simple.Project.git",
"includeUser":"false",
"credentialsId":"103814c9-b808-4a00-8d4f-4388f05b6774",
"name":"",
"refspec":""
},
"branches":{
"name":"development"
},
"":"auto"
},
"hudson-plugins-tfs-TeamPRPushTrigger":false,
"jobContext":"Jenkins PR build",
"targetBranches":"*/master",
"io-jenkins-plugins-bitbucketpushandpullrequest-BitBucketPPRTrigger":true,
"triggers":{
"":"5",
"actionFilter":{
"allowedBranches":"development",
"isToApprove":false,
"stapler-class":"io.jenkins.plugins.bitbucketpushandpullrequest.filter.pullrequest.cloud.BitBucketPPRPullRequestMergedActionFilter",
"$class":"io.jenkins.plugins.bitbucketpushandpullrequest.filter.pullrequest.cloud.BitBucketPPRPullRequestMergedActionFilter"
},
"stapler-class":"io.jenkins.plugins.bitbucketpushandpullrequest.filter.pullrequest.cloud.BitBucketPPRPullRequestTriggerFilter",
"$class":"io.jenkins.plugins.bitbucketpushandpullrequest.filter.pullrequest.cloud.BitBucketPPRPullRequestTriggerFilter"
},
"com-cloudbees-jenkins-GitHubPushTrigger":false,
"hudson-triggers-SCMTrigger":false,
"scmpoll_spec":"",
"ignorePostCommitHooks":false,
"hudson-plugins-ws_cleanup-PreBuildCleanup":false,
"deleteDirs":false,
"cleanupParameter":"",
"externalDelete":"",
"disableDeferredWipeout":false,
"org-jenkinsci-plugins-credentialsbinding-impl-SecretBuildWrapper":false,
"hudson-tasks-AntWrapper":false,
"builder":[
{
"command":"\"C:\\Program Files\\dotnet\\dotnet\" restore --configfile \"%WORKSPACE%\\nuget.config\"",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
},
{
"command":"\"C:\\Program Files\\dotnet\\dotnet\" build -c Release My.Simple.Project.sln\n",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
},
{
"command":"REM Running unit tests...\n\nREM \"C:\\Program Files\\dotnet\\dotnet\" test -c Release My.Simple.Project.Engine.Tests\\My.Simple.Project.Engine.Tests.csproj && \"C:\\Program Files\\dotnet\\dotnet\" test -c Release My.Simple.Project.Public.Tests\\My.Simple.Project.Public.Tests.csproj && \"C:\\Program Files\\dotnet\\dotnet\" test -c Release My.Simple.Project.Services.Tests\\My.Simple.Project.Services.Tests.csproj",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
},
{
"command":"\"C:\\Program Files\\dotnet\\dotnet\" publish -c Release My.Simple.Project.Web\\My.Simple.Project.Web.csproj",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
},
{
"command":"SET APP_NAME=MySimpleProject\nSET PROJECT_NAME=My.Simple.Project.Web\nSET SERVER=top_secret_IP\nSET USERNAME=top_secret_username\nSET PASSWORD=top_secret_password\nSET ASPNETCORE_ENVIRONMENT=development\n\n\"C:\\Python27\\python.exe\" \"%WORKSPACE%\\%PROJECT_NAME%\\deploy2iis.py\" --source-root=\"%WORKSPACE%\\%PROJECT_NAME%\" --source-publish=\"bin\\Release\\netcoreapp2.1\\publish\" --app-name=%APP_NAME% --server=%SERVER% --username=%USERNAME% --password=%PASSWORD% --environment=%ASPNETCORE_ENVIRONMENT%",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
},
{
"command":"REM Running smoke tests...\n\n\"C:\\Program Files\\dotnet\\dotnet\" test -c Release My.Simple.Project.Web.SmokeTests\\My.Simple.Project.Web.SmokeTests.csproj",
"unstableReturn":"",
"stapler-class":"hudson.tasks.BatchFile",
"$class":"hudson.tasks.BatchFile"
}
],
"publisher":{
"startNotification":false,
"notifySuccess":true,
"notifyAborted":false,
"notifyNotBuilt":false,
"notifyUnstable":false,
"notifyRegression":false,
"notifyEveryFailure":false,
"notifyBackToNormal":true,
"notifyFailure":true,
"notifyRepeatedFailure":true,
"includeTestSummary":false,
"includeFailedTests":false,
"includeCustomMessage":false,
"customMessage":"",
"customMessageSuccess":"",
"customMessageAborted":"",
"customMessageNotBuilt":"",
"customMessageUnstable":"",
"customMessageFailure":"",
"commitInfoChoice":"AUTHORS_AND_TITLES",
"uploadFiles":false,
"artifactIncludes":"",
"teamDomain":"",
"baseUrl":"",
"includeUser":"false",
"tokenCredentialId":"",
"authToken":"",
"botUser":false,
"iconEmoji":"",
"username":"",
"room":"#build",
"stapler-class":"jenkins.plugins.slack.SlackNotifier",
"$class":"jenkins.plugins.slack.SlackNotifier"
},
"core:apply":"true",
"Jenkins-Crumb":"f6ef199fb949a3cc69b1c7a4044cecfef28a553599167163909a77f304bde0a5"
}
Here is the full error log;
net.sf.json.JSONException: JSONObject["io-jenkins-plugins-bitbucketpushandpullrequest-BitBucketPPRTrigger"] is not a JSONObject.
at net.sf.json.JSONObject.getJSONObject(JSONObject.java:2006)
at hudson.model.AbstractProject.buildDescribable(AbstractProject.java:1822)
at hudson.model.AbstractProject.submit(AbstractProject.java:1800)
at hudson.model.Project.submit(Project.java:225)
at hudson.model.Job.doConfigSubmit(Job.java:1335)
at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:771)
at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
at org.kohsuke.stapler.verb.HttpVerbInterceptor.invoke(HttpVerbInterceptor.java:48)
at org.kohsuke.stapler.SelectionInterceptedFunction.bindAndInvoke(SelectionInterceptedFunction.java:26)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:281)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:76)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:153)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)
at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
at java.lang.Thread.run(Unknown Source)
And Finally Here is my configuration screenshots;
If I Click Apply or Save button, I get the result below.

Hyperledger Composer - multi host installation

I've been experimenting with Hyperledger Fabric, deployed over 2 VirtualBox Ubuntu images with docker swarm. But I have some issues when it comes to the Composer installation.
Network Setup:
Host1: Orderer, Peer1.Org1, Peer2.Org1, CLI
Host2: Peer1.Org2, Peer2.Org2
When it comes to the Fabric setup everything appears to be ok. I'm able to start the network, join the peers from the second host, and update the anchor peers (one for each organisation).
The Composer installation starts with creating and importing the business network card and then installing the .bna file onto the network.
The issues appear when I try to start the network:
Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: failed to execute transaction 14f90ad938da64fbbdb2923b07f4985251391937fc3fdc8bab19c2d13135ecd3: error starting container: error starting container: API error (500): Could not attach to network net_example: rpc error: code = NotFound desc = network net_example not found
Response from attempted peer comms was an error: Error: failed to execute transaction 14f90ad938da64fbbdb2923b07f4985251391937fc3fdc8bab19c2d13135ecd3: error starting container: error starting container: API error (500): Could not attach to network net_example: rpc error: code = NotFound desc = network net_example not found
Response from attempted peer comms was an error: Error: Failed to connect before the deadline
Response from attempted peer comms was an error: Error: Failed to connect before the deadline
When I inspect the first peer from org1, I'm seeing the following error:
2018-09-24 13:46:44.665 UTC [lscc] executeInstall -> INFO 03c Installed Chaincode [example-network] Version [0.0.1] to peer
2018-09-24 13:46:46.993 UTC [dockercontroller] Start -> ERRO 03d start-could not start container: API error (500): Could not attach to network net_example: rpc error: code = NotFound desc = network net_example not found
2018-09-24 13:46:47.008 UTC [chaincode] Launch -> ERRO 03e start failed: API error (500): Could not attach to network net_example: rpc error: code = NotFound desc = network net_example not found
error starting container
error starting container
2018-09-24 13:46:47.008 UTC [endorser] SimulateProposal -> ERRO 03f [mychannel][14f90ad9] failed to invoke chaincode name:"lscc" , error: API error (500): Could not attach to network net_example: rpc error: code = NotFound desc = network net_example not found
error starting container
error starting container
failed to execute transaction 14f90ad938da64fbbdb2923b07f4985251391937fc3fdc8bab19c2d13135ecd3
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:181
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
/opt/gopath/src/github.com/hyperledger/fabric/core/endorser/support.go:131
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
/opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
/opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:287
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
/opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:501
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
/opt/gopath/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
/opt/gopath/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:31
github.com/hyperledger/fabric/protos/peer._Endorser_ProcessProposal_Handler
/opt/gopath/src/github.com/hyperledger/fabric/protos/peer/peer.pb.go:112
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:923
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1148
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:637
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:2361
2018-09-24 13:46:51.770 UTC [lscc] Invoke -> ERRO 040 error getting chaincode example-network on channel [mychannel]: could not find chaincode with name 'example-network'
This is my connectionProfile.json:
{
"name": "example-network",
"x-type": "hlfv1",
"version": "1.0.0",
"channels": {
"mychannel": {
"orderers": [
"orderer.example.com"
],
"peers": {
"peer0.manager.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"ledgerQuery": true,
"eventSource": true
},
"peer1.manager.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"ledgerQuery": true,
"eventSource": true
},
"peer0.sponsor.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"ledgerQuery": true,
"eventSource": true
},
"peer1.sponsor.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"ledgerQuery": true,
"eventSource": true
}
}
}
},
"organizations": {
"Manager": {
"mspid": "ManagerMSP",
"peers": [
"peer0.manager.example.com",
"peer1.manager.example.com"
],
"certificateAuthorities": [
"ca.manager.example.com"
]
},
"Sponsor": {
"mspid": "SponsorMSP",
"peers": [
"peer0.sponsor.example.com",
"peer1.sponsor.example.com"
],
"certificateAuthorities": [
"ca.sponsor.example.com"
]
}
},
"orderers": {
"orderer.example.com": {
"url": "grpcs://localhost:7050",
"grpcOptions": {
"ssl-target-name-override": "orderer.example.com"
},
"tlsCACerts": {
"pem": "INSERT_ORDERER_CA_CERT"
}
}
},
"peers": {
"peer0.manager.example.com": {
"url": "grpcs://localhost:7051",
"eventUrl": "grpcs://localhost:7053",
"grpcOptions": {
"ssl-target-name-override": "peer0.manager.example.com"
},
"tlsCACerts": {
"pem": "INSERT_MANAGER_CA_CERT"
}
},
"peer1.manager.example.com": {
"url": "grpcs://localhost:8051",
"eventUrl": "grpcs://localhost:8053",
"grpcOptions": {
"ssl-target-name-override": "peer1.manager.example.com"
},
"tlsCACerts": {
"pem": "INSERT_MANAGER_CA_CERT"
}
},
"peer0.sponsor.example.com": {
"url": "grpcs://10.0.0.113:9051",
"eventUrl": "grpcs://10.0.0.113:9053",
"grpcOptions": {
"ssl-target-name-override": "peer0.sponsor.example.com"
},
"tlsCACerts": {
"pem": "INSERT_SPONSOR_CA_CERT"
}
},
"peer1.sponsor.example.com": {
"url": "grpcs://10.0.0.112:10051",
"eventUrl": "grpcs://10.0.0.112:10053",
"grpcOptions": {
"ssl-target-name-override": "peer1.sponsor.example.com"
},
"tlsCACerts": {
"pem": "INSERT_SPONSOR_CA_CERT"
}
}
},
"certificateAuthorities": {
"ca.manager.example.com": {
"url": "https://localhost:7054",
"caName": "ca-manager",
"httpOptions": {
"verify": false
}
},
"ca.sponsor.example.com": {
"url": "https://10.0.0.111:8054",
"caName": "ca-sponsor",
"httpOptions": {
"verify": false
}
}
}
}
Does anybody know what I could try next?
The composer network start command is attempting to start a 'chaincode' container for each of the peers, and from error you show, there are 2 of your peers that cannot start these new container.
The error looks like a Docker error - the containers cannot be started on a network bridge called "net_example". I would guess that you have an environment variable defined in one of your docker-compose-xxx.yaml files that defines this variable: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE which determines which network bridge the new containers are attached to.
You will need to determine which network bridge our other Fabric containers are using, then set this variable in the .yaml to that bridge.
This previous post has some discussion on multi-host fabric.
I dont think you need Docker Swarm for multi host Fabric setup.
I tried this tool from Altoros for easy setup of multi host Fabric. it did work with Fabric 1.1. For 1.2 it did not work - i think it requires some changes.
https://www.altoros.com/blog/deploying-a-multi-node-hyperledger-fabric-network-in-5-steps/
There is another tool from Debut Infotech. you can try this too.
https://www.fabricdeployer.com/
Early on i tried setting up with Docker Swarm using the link below. it worked.
https://medium.com/#wahabjawed/hyperledger-fabric-on-multiple-hosts-a33b08ef24f

Node Driver startup issue V1

I am running into an issue after upgrading a custom cordapp from M13 to V1. I have a small test suite which launches nodes using the node driver, and after upgrading to version 1 I get an issue which seems to be caused by the cordadevcakeys.jks file being null (see the error stack below). To upgrade I simply changed the build gradle release version and gradle plugins version from 0.13.0 to 1.0.0 - I am not sure if there is a step I am missing here that could potentially cause this error? I have also pulled the latests version 1 Corda project locally - although I was under the impression that this step isnt needed.
[ERROR] 12:45:26,017 [main] (Driver.kt:396) driver.DriverDSL.genericDriver -
Driver shutting down because of exception
java.lang.ExceptionInInitializerError: null
at net.corda.testing.driver.DriverDSL.start(Driver.kt:796) ~[corda-node-driver-1.0.0.jar:?]
at net.corda.testing.driver.Driver.genericDriver(Driver.kt:393) [corda-node-driver-1.0.0.jar:?]
at net.corda.testing.driver.Driver.driver(Driver.kt:317) [corda-node-driver-1.0.0.jar:?]
at net.corda.testing.driver.Driver.driver$default(Driver.kt:314) [corda-node-driver-1.0.0.jar:?]
at src.DeploymentTestKt.main(DeploymentTest.kt:29) [main/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:65) [idea_rt.jar:?]
Caused by: java.lang.IllegalStateException: ClassLoader.getSystemRes…ates/cordadevcakeys.jks") must not be null
at net.corda.testing.TestConstants$DEV_CA$2.invoke(TestConstants.kt:72) ~[corda-test-utils-1.0.0.jar:?]
at net.corda.testing.TestConstants$DEV_CA$2.invoke(TestConstants.kt) ~[corda-test-utils-1.0.0.jar:?]
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) ~[kotlin-stdlib-1.1.4.jar:1.1.4]
at net.corda.testing.TestConstants.getDEV_CA(TestConstants.kt) ~[corda-test-utils-1.0.0.jar:?]
at net.corda.testing.CoreTestUtils.getTestPartyAndCertificate$default(CoreTestUtils.kt:145) ~[corda-test-utils-1.0.0.jar:?]
at net.corda.testing.CoreTestUtils.getBOC_IDENTITY(CoreTestUtils.kt:75) ~[corda-test-utils-1.0.0.jar:?]
at net.corda.testing.CoreTestUtils.getBOC(CoreTestUtils.kt:76) ~[corda-test-utils-1.0.0.jar:?]
at net.corda.testing.CoreTestUtils.<clinit>(CoreTestUtils.kt:77) ~[corda-test-utils-1.0.0.jar:?]
... 10 more
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:65)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.corda.testing.CoreTestUtils
at net.corda.testing.driver.ShutdownManager.shutdown(Driver.kt:505)
at net.corda.testing.driver.DriverDSL.shutdown(Driver.kt:627)
at net.corda.testing.driver.Driver.genericDriver(Driver.kt:399)
at net.corda.testing.driver.Driver.driver(Driver.kt:317)
at net.corda.testing.driver.Driver.driver$default(Driver.kt:314)
at src.DeploymentTestKt.main(DeploymentTest.kt:29)
... 5 more
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: Could not initialize class net.corda.testing.CoreTestUtils
at net.corda.testing.driver.ShutdownManager.shutdown(Driver.kt:505)
at net.corda.testing.driver.DriverDSL.shutdown(Driver.kt:627)
at net.corda.testing.driver.Driver$genericDriver$shutdownHook$1.invoke(Driver.kt:391)
at net.corda.testing.driver.Driver$genericDriver$shutdownHook$1.invoke(Driver.kt)
at net.corda.nodeapi.internal.ShutdownHookKt$addShutdownHook$hook$1.run(ShutdownHook.kt:15)
at java.lang.Thread.run(Thread.java:748)
I can post the code I am using to launch the driver if need be, but by having a look at the cordapp-example it seems my method for starting the driver and nodes is correct, and it was working on M13.
*Edit, added in my gradle build and node driver code
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'idea'
apply plugin: 'net.corda.plugins.publish-utils'
apply plugin: 'net.corda.plugins.cordformation'
apply plugin: 'maven-publish'
apply plugin: 'application'
apply plugin: 'net.corda.plugins.quasar-utils'
repositories {
mavenLocal()
jcenter()
mavenCentral()
maven { url 'https://dl.bintray.com/kotlin/exposed' }
maven { url 'https://jitpack.io' }
}
sourceSets {
main {
resources {
srcDir "../config/dev"
}
}
test {
resources {
srcDir "../config/test"
}
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
compileOnly "co.paralleluniverse:capsule:1.0.1"
compile 'net.sourceforge.plantuml:plantuml:8039'
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
testCompile "junit:junit:$junit_version"
//Corda integration dependencies
cordaCompile "net.corda:corda-core:$corda_release_version"
cordaCompile "net.corda:corda-finance:$corda_release_version"
cordaCompile "net.corda:corda-jackson:$corda_release_version"
cordaCompile "net.corda:corda-jfx:$corda_release_version"
cordaCompile "net.corda:corda-rpc:$corda_release_version"
cordaCompile "net.corda:corda-node-api:$corda_release_version"
cordaCompile "net.corda:corda-webserver-impl:$corda_release_version"
cordaCompile "net.corda:corda-test-utils:$corda_release_version"
testCompile "net.corda:corda-test-utils:$corda_release_version"
cordaRuntime "net.corda:corda:$corda_release_version"
cordaRuntime "net.corda:corda-webserver:$corda_release_version"
cordaCompile "net.corda:corda-node-driver:$corda_release_version"
//testCompile "net.corda:corda-node-driver:$corda_release_version"
cordapp "net.corda:corda-finance:$corda_release_version"
// cordaCompile "net.corda:corda-core:$corda_release_version"
// cordaCompile "net.corda:corda-finance:$corda_release_version"
// cordaCompile "net.corda:corda-jackson:$corda_release_version"
// cordaCompile "net.corda:corda-rpc:$corda_release_version"
// cordaCompile "net.corda:corda-node-api:$corda_release_version"
// cordaCompile "net.corda:corda-webserver-impl:$corda_release_version"
// cordaRuntime "net.corda:corda:$corda_release_version"
// cordaRuntime "net.corda:corda-webserver:$corda_release_version"
// testCompile "net.corda:corda-test-utils:$corda_release_version"
// cordaCompile "net.corda:corda-node-driver:$corda_release_version"
// testCompile "net.corda:corda-node-driver:$corda_release_version"
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
languageVersion = "1.1"
apiVersion = "1.1"
jvmTarget = "1.8"
javaParameters = true // Useful for reflection.
}
}
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK"
node {
name "CN=Controller,O=R3,OU=corda,L=London,C=UK"
advertisedServices = ["corda.notary.validating"]
p2pPort 10002
rpcPort 10003
cordapps = ["secLendModel"]
}
node {
name "CN=NodeA,O=NodeA,L=London,C=UK"
advertisedServices = []
p2pPort 10005
rpcPort 10006
webPort 10007
cordapps = ["secLendModel"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "CN=NodeB,O=NodeB,L=New York,C=US"
advertisedServices = []
p2pPort 10008
rpcPort 10009
webPort 10010
cordapps = ["secLendModel"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "CN=NodeC,O=NodeC,L=Paris,C=FR"
advertisedServices = []
p2pPort 10011
rpcPort 10012
webPort 10013
cordapps = ["secLendModel"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
}
// TODO: Make into gradle plugin without any references to Jython
task installJythonDeps(dependsOn: ['build']) {
project.copy {
from project.configurations.runtime
into "build/jythonDeps"
}
}
installJythonDeps.shouldRunAfter build
idea {
module {
downloadJavadoc = true // defaults to false
downloadSources = true
}
}
publishing {
publications {
jarAndSources(MavenPublication) {
from components.java
artifactId 'secLendModel'
artifact sourceJar
artifact javadocJar
}
}
}
task runTemplateClientRPC(type: JavaExec) {
classpath = sourceSets.main.runtimeClasspath
main = 'com.template.client.TemplateClientRPCKt'
args 'localhost:10006'
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
and this is my node driver code
fun runSimulation() {
driver(portAllocation = PortAllocation.Incremental(20000), isDebug = false, startNodesInProcess = true, extraCordappPackagesToScan = listOf("com.secLendModel")) {
//Normal Users
val arnoldParams = NodeParameters(providedName = ARNOLD, rpcUsers = arrayListOf(stdUser))
val barryParams = NodeParameters(providedName = BARRY, rpcUsers = arrayListOf(stdUser))
val colinParams = NodeParameters(providedName = COLIN, rpcUsers = arrayListOf(stdUser))
val arnold = startNode(defaultParameters = arnoldParams)
val barry = startNode(defaultParameters = barryParams)
val colin = startNode(defaultParameters = colinParams)
//Special Users (i.e asset issuers and oracles)
val notaryParams = NodeParameters(providedName = NOTARY, advertisedServices = setOf(ServiceInfo(ValidatingNotaryService.type)))
val notary = startNode(defaultParameters = notaryParams)
//Stock issuer AND stock price oracle
val exchangeParams = NodeParameters(providedName = EXCHANGE, rpcUsers = arrayListOf(specialUser),
advertisedServices = MARKET.plus(ServiceInfo(PriceType.type)))
val exchange = startNode(defaultParameters = exchangeParams)
//Cash issuer
val centralbankParams = NodeParameters(providedName = CENTRALBANK, rpcUsers = arrayListOf(specialUser),
advertisedServices = CURRENCIES)
val centralBank = startNode(defaultParameters = centralbankParams)
// val oracle = startNode(ORACLE, advertisedServices = setOf(ServiceInfo(PriceType.type)))
notaryNode = notary.get()
arnoldNode = arnold.get()
barryNode = barry.get()
colinNode = colin.get()
exchangeNode = exchange.get()
centralNode = centralBank.get()
// oracleNode = oracle.get()
startWebserver(arnoldNode)
setUpNodes()
simulateTransactions()
waitForAllNodesToFinish()
}
You need to close IntelliJ and clear out your gradle cache (under ~/.gradle on Mac).

Unable to use Response.Status.METHOD_NOT_ALLOWED in Neo4J 2.3.1

I am creating a REST api with a dynamic path like this:
#DELETE
#Path("/{path: .+}")
#Produces(MediaType.APPLICATION_JSON)
public void delete() {
...
}
When I do not find a single node by the path I would like to return a 405 "Method not allowed" response. To do this I tried this:
return Response.status(Response.Status.METHOD_NOT_ALLOWED).build();
This result in an exception and the server gives a 500 "Server Error" response. This is what I get:
java.lang.NoSuchFieldError: METHOD_NOT_ALLOWED
... my boring classes...
at com.sun.jersey.spi.container.ContainerResponse.mapException(ContainerResponse.java:480)
at com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException(ContainerResponse.java:417)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1477)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.neo4j.server.rest.web.CollectUserAgentFilter.doFilter(CollectUserAgentFilter.java:69)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:620)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:540)
at java.lang.Thread.run(Thread.java:745)
Any ideas? :)
METHOD_NOT_ALLOWED should just be int 405. So william-lyon's response should be the correct one:
return Response.status(405).build();
But it looks like we should request neo4j 3.0 upgrade jax-rs to 2 from 1.1.
Can you please create raise an issue on github? https://github.com/neo4j/neo4j/issues

Resources