Hi there,
We have migrated play 2.0 into Play 2.8 ,All good
code looks like this play-samples/play-java-jpa-example at 2.8.x · playframework/play-samples · GitHub
Each controller (around 6-7) has Supper class MainController extending controller
and constructor calling super
Similar to play-samples/PersonController.java at 2.8.x · playframework/play-samples · GitHub
We have 2 load balanced instances , we put application in test environment and observed that,
Some times screen loads correct data ,sometimes load some other /old request data
Is this related to sticky session issue or dependency injection not happening correctly and objects are null?
In logs we found inconsistent behaviour with below exceptions in common
play.api.UnexpectedException,
io.jsonwebtoken.lang.UnknownClassException
,io.jsonwebtoken.lang.UnknownClassException ,akka.stream.SubscriptionWithCancelException$NoMoreElementsNeeded$
org.hibernate.boot.registry.classloading.spi.ClassLoadingException
Looking forward for the reply
Stacktrace:
play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:355)
play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:261)
play.core.server.AkkaHttpServer$$anonfun$2.applyOrElse(AkkaHttpServer.scala:429)
play.core.server.AkkaHttpServer$$anonfun$2.applyOrElse(AkkaHttpServer.scala:421)
scala.concurrent.impl.Promise$Transformation.run(Promise.scala:453)
akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:56)
akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:93)
akka.dispatch.BatchingExecutor$BlockableBatch$$Lambda$.apply$mcV$sp
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:93)
akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:48)
akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
Exception:
org.hibernate.boot.registry.classloading.spi.ClassLoadingException
Message:
Unable to load class [fetch]
[Show affected entry in ‘Code level’ tab](javascript:;)
Stacktrace:
org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:133)
org.hibernate.metamodel.internal.MetamodelImpl.getImportedClassName(MetamodelImpl.java:630)
org.hibernate.hql.internal.QuerySplitter.getImportedClass(QuerySplitter.java:189)
org.hibernate.hql.internal.QuerySplitter.concreteQueries(QuerySplitter.java:117)
org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:99)
org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:73)
org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:155)
org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:600)
org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:709)
org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23)
models.JPACommonRepository.getDailySalesList(JPACommonRepository.java:173)
models.JPACommonRepository.lambda$
models.JPACommonRepository$$Lambda$.apply
play.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:169)
play.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:126)
play.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:101)
models.JPACommonRepository.wrap(JPACommonRepository.java:316)
models.JPACommonRepository.lambda$
models.JPACommonRepository$$Lambda$.get
java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:48)
java.util.concurrent.ThreadPoolExecutor.runWor
Exception:
io.jsonwebtoken.lang.UnknownClassException
Message:
Unable to load class named [org.bouncycastle.jce.provider.BouncyCastleProvider] from the thread context, current, or system/application ClassLoaders. All heuristics have been exhausted. Class could not be found.
[Show affected entry in ‘Code level’ tab](javascript:;)
Stacktrace:
io.jsonwebtoken.lang.Classes.forName(Classes.java:92)
io.jsonwebtoken.lang.Classes.isAvailable(Classes.java:127)
io.jsonwebtoken.lang.RuntimeEnvironment.(RuntimeEnvironment.java:32)
io.jsonwebtoken.SignatureAlgorithm.(SignatureAlgorithm.java:92)
io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:289)
io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:481)
io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:541)
play.api.mvc.JWTCookieDataCodec$JWTFormatter.parse(Cookie.scala:736)
play.api.mvc.JWTCookieDataCodec.decode(Cookie.scala:644)
play.api.mvc.JWTCookieDataCodec.decode$(Cookie.scala:637)
play.api.mvc.DefaultJWTCookieDataCodec.decode(Cookie.scala:816)
play.api.mvc.FallbackCookieDataCodec.decode(Cookie.scala:807)
play.api.mvc.FallbackCookieDataCodec.decode$(Cookie.scala:800)
play.api.mvc.DefaultSessionCookieBaker.decode(Session.scala:123)
play.api.mvc.CookieBaker.decodeFromCookie(Cookie.scala:486)
play.api.mvc.CookieBaker.decodeFromCookie$(Cookie.scala:480)
play.api.mvc.DefaultSessionCookieBaker.decodeFromCookie(Session.scala:123)
play.api.mvc.request.DefaultRequestFactory$$anon$3.create(RequestFactory.scala:121)
play.api.mvc.request.DefaultRequestFactory$$anon$3.create(RequestFactory.scala:118)
play.api.mvc.request.LazyCell.value(Cell.scala:69)
play.mvc.Http$RequestHeader.session(Http.java:336)
play.core.j.RequestHeaderImpl.session(JavaHelpers.scala:194)
security.SessionExpirationFilter.call(SessionExpirationFilter.java:30)
play.core.j.JavaAction.$anonfun$apply$8(JavaAction.scala:175)
play.core.j.JavaAction$$Lambda$.apply
scala.concurrent.Future$.$anonfun$apply$1(Future.scala:661)