SafeExamBrowser / seb-server-setup

Cotains resources and packages to setup and install SEB-Server. Currently only docker-based setup is supported
Mozilla Public License 2.0
7 stars 12 forks source link

Problem with Zoom Proctoring #8

Closed trungnn94 closed 2 years ago

trungnn94 commented 2 years ago

Hi,

I am using SEB Server 1.2-stable [production/bundled/dockerhub]

Steps to reproduce the behavior:

  1. Go to 'SEB Server'
  2. Click on 'Monitoring' -> 'Running Exam' -> 'Monitoring'
  3. Click on Session with status Active -> 'Single Room Proctoring'
  4. See error HTTP 401

Screenshots My proctoring settings image

when i click to 'Single Room Proctoring'... what I did wrong with my proctoring configuration? image

I'm pretty sure my zoom account is okay (licensed and used daily)

Trung Nguyen,

anhefti commented 2 years ago

Hi

It seems that your Zoom account is not properly setup and the Server URL seems to be wrong. This should be the base URL of your on premise Zoom account, something like "https://[your-institution-name].zoom.us/" or you can also try the base Zoom URL "https://zoom.us/".

When a SEB client is connected you should also see it in the collecting Proctoring Rooms on the main monitoring view: image

If this is not happening, something is wrong with the proctoring setup. You can also check the SEB Server logs of your setup the get more information on this. Since the Zoom proctoring integration is still in an experimental state, error handling needs to be improved.

trungnn94 commented 2 years ago

Hi,

I'm trying to change the URL but it doesn't seem to work. The collecting Proctoring Rooms on the main monitoring view is not showing. Below is my seb-server log, hope this helps.

Trung Nguyen,


02:25:38.141 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

02:25:38.153 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

  .   ____          _            __ _ _

 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )

  '  |____| .__|_| |_|_| |_\__, | / / / /

 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::        (v2.3.7.RELEASE)

02:25:40.216 INFO  [main]:[ch.ethz.seb.sebserver.SEBServer] Starting SEBServer vv1.2-stable-7af1f78 on 74cff614a77a with PID 1 (/sebserver/seb-server.jar started by spring in /sebserver)

02:25:40.217 INFO  [main]:[ch.ethz.seb.sebserver.SEBServer] The following profiles are active: gui,ws,prod-ws,prod-gui,prod

02:25:44.697 INFO  [main]:[ch.ethz.seb.sebserver.gui.RAPSpringConfig]  +++ Register external messages resources from: file:/sebserver/config/spring/messages

02:25:48.270 INFO  [main]:[ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.ConfigurationDAOBatchService] Registered MyBatis Mappers: [interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.UserRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ConfigurationValueRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.RoleRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.AdditionalAttributeRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ConfigurationNodeRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ConfigurationRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ConfigurationAttributeRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.InstitutionRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.SebClientConfigRecordMapper, interface ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.CertificateRecordMapper]

cacheManager:Eh107CacheManager[classpath:config/ehcache.xml]

02:25:52.130 WARN  [main]:[org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor] DB: Duplicate column name 'townhall_room' (SQL State:  - Error Code: 1060)

02:25:52.607 INFO  [main]:[ch.ethz.seb.sebserver.SEBServer] Started SEBServer in 13.859 seconds (JVM running for 15.359)

02:25:52.623 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->   ___  ___  ___   ___                          

02:25:52.624 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  / __|| __|| _ ) / __| ___  _ _ __ __ ___  _ _ 

02:25:52.624 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  \__ \| _| | _ \ \__ \/ -_)| '_|\ V // -_)| '_|

02:25:52.624 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  |___/|___||___/ |___/\___||_|   \_/ \___||_|  

02:25:52.624 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.625 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.625 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Version: v1.2-stable-7af1f78

02:25:52.625 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.625 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Active profiles: [gui, ws, prod-ws, prod-gui, prod]

02:25:52.625 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.626 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Context Path: /

02:25:52.626 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.626 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.626 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  **** GUI Service starting up... ****

02:25:52.626 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.627 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  GUI Service successfully successfully started up!

02:25:52.627 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.631 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Webservice connection: http://localhost:8080/admin-api/v1

02:25:52.631 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> GUI service internal connection : http://0.0.0.0:8080

02:25:52.632 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> GUI service external connection : https://seb.dgs.org.vn

02:25:52.632 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> GUI service endpoint : /gui

02:25:52.633 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.633 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Webservice admin API endpoint: /admin-api/v1

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Webservice exam API endpoint: /exam-api

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Webservice admin API basic access: --guiClient--

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->  **** Webservice starting up... ****

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> 

02:25:52.634 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Register Webservice: 5681cf46-8cfa-405c-9828-541119304497

02:25:52.696 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> 

02:25:52.696 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Initialize Services...

02:25:52.696 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> 

02:25:52.707 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------>

02:25:52.707 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Start 4 Event-Batch-Store Worker-Threads

02:25:52.711 INFO  [asyncService-2]:[ch.ethz.seb.SEB_SERVER_INIT] > Worker Thread Thread[asyncService-2,5,main] running

02:25:52.712 INFO  [asyncService-1]:[ch.ethz.seb.SEB_SERVER_INIT] > Worker Thread Thread[asyncService-1,5,main] running

02:25:52.726 INFO  [asyncService-3]:[ch.ethz.seb.SEB_SERVER_INIT] > Worker Thread Thread[asyncService-3,5,main] running

02:25:52.726 INFO  [asyncService-4]:[ch.ethz.seb.SEB_SERVER_INIT] > Worker Thread Thread[asyncService-4,5,main] running

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------>

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Activate exam run controller background task

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] --------> Task runs on an cron-job interval of 1 * * * * *

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] --------> Real exam running time span is expanded on 3600000 before start and 3600000 milliseconds after ending

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------>

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Activate SEB lost-ping-event update background task on a fix rate of: 15000 milliseconds

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------>

02:25:53.220 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Run SEBInstructionService...

02:25:53.251 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> No pending SEB client instructions found on persistent storage

02:25:53.251 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> 

02:25:53.251 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> **** Webservice successfully started up! **** 

02:25:53.251 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.251 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> *** Info:

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Server address: 0.0.0.0

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Server port: 8080

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Local-Host address: 172.19.0.3

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Local-Host name: 74cff614a77a

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Remote-Host address: 127.0.0.1

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Remote-Host name: localhost

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Context Path: /

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> External-Host URL: https://seb.dgs.org.vn

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> LMS-External-Address-Alias: {}

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> HTTP Scheme https

02:25:53.252 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.253 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> Property Override Test: This is a basic bundled productive setup

02:25:53.253 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.253 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> **** Run data-base integrity checks ****

02:25:53.253 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.257 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Apply check: OrientationTableDuplicatesCheck / Checks if there are duplicate entries in the orientation table by using the config_attribute_id and template_id to identify duplicates.

02:25:53.276 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] --------> Result: OK

02:25:53.281 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ------> Apply check: ViewTableDuplicatesCheck / Checks if there are duplicate entries in the view table by using the name and template_id to identify duplicates.

02:25:53.289 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] --------> Result: OK

02:25:53.395 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> ***********************************************************************************************************************************************************************

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> SEB Server initial admin-account; name: sebserver-admin, pwd: [_e_~3q6q$VPexKUj9RZe`PHNjo$uU*@X96NRwzf0TOCb=pkX%ZGG#$Jo2EK6qal

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> !!!! NOTE: Do not forget to login and reset the generated admin password immediately !!!!

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ----> ***********************************************************************************************************************************************************************

02:25:53.396 INFO  [main]:[ch.ethz.seb.SEB_SERVER_INIT] ---->

02:25:57.599 INFO  [scheduling-1]:[ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.WebserviceInfoDAOImpl] Set webservice 5681cf46-8cfa-405c-9828-541119304497 as master

02:32:53.557 ERROR [http-nio-0.0.0.0-8080-exec-2]:[ch.ethz.seb.sebserver.gui.service.remote.webservice.auth.OAuth2AuthorizationContextHolder] Failed to log logout: 401 UNAUTHORIZED

02:35:08.413 INFO  [http-nio-0.0.0.0-8080-exec-9]:[ch.ethz.seb.sebserver.webservice.weblayer.api.ConfigurationController] Successfully updated SEB Configuration for exams: []

02:35:56.388 WARN  [asyncService-5]:[ch.ethz.seb.sebserver.webservice.servicelayer.sebconfig.impl.ClientConfigServiceImpl] Failed to check access for SEBClientConfig: SEBClientConfig [id=1, institutionId=1, name=DGS_exam_connect, configPurpose=START_EXAM, sebServerPingTime=1000, vdiType=NO, vdiExecutable=null, vdiPath=null, vdiArguments=null, fallback=false, fallbackStartURL=null, fallbackTimeout=null, fallbackAttempts=null, fallbackAttemptInterval=null, fallbackPassword=null, fallbackPasswordConfirm=null, quitPassword=null, quitPasswordConfirm=null, date=2021-11-23T02:35:54.000Z, encryptSecret=null, encryptSecretConfirm=null, active=true] cause: I/O error on POST request for "https://seb.dgs.org.vn/oauth/token": PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

02:36:24.229 INFO  [http-nio-0.0.0.0-8080-exec-5]:[ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.moodle.MoodleRestTemplateFactory] Successfully get access token from Moodle: LmsSetup [id=1, institutionId=1, name=DGS Exam, lmsType=MOODLE, lmsAuthName=admin, lmsAuthSecret=null, lmsApiUrl=http://exam.dgs.org.vn, lmsRestApiToken=null, proxyHost=null, proxyPort=null, proxyAuthUsername=null, proxyAuthSecret=null, active=false]

02:36:27.407 INFO  [asyncService-6]:[ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.moodle.MoodleRestTemplateFactory] Successfully get access token from Moodle: LmsSetup [id=1, institutionId=1, name=DGS Exam, lmsType=MOODLE, lmsAuthName=admin, lmsAuthSecret=null, lmsApiUrl=http://exam.dgs.org.vn, lmsRestApiToken=null, proxyHost=null, proxyPort=null, proxyAuthUsername=null, proxyAuthSecret=null, active=true]

02:36:27.411 INFO  [asyncService-6]:[ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.moodle.MoodleCourseDataAsyncLoader] LMS Setup: 1 loaded 0 courses asynchronously

02:36:39.661 INFO  [asyncService-5]:[ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.moodle.MoodleCourseDataAsyncLoader] LMS Setup: 1 loaded 1 courses synchronously

02:36:50.455 ERROR [http-nio-0.0.0.0-8080-exec-3]:[ch.ethz.seb.sebserver.gui.service.page.impl.PageAction] Failed to execute action: EXAM_SAVE | error: RestCallError [errors=[APIMessage [messageCode=1200, systemMessage=Field validation error, details=Field error in object '' on field 'supporter': rejected value [[]]; codes [NotEmpty.supporter,NotEmpty.java.util.Collection,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [.supporter,supporter]; arguments []; default message [supporter]]; default message [exam:supporter:notNull], attributes=[exam, supporter, notNull]]]] | cause: ch.ethz.seb.sebserver.gui.service.remote.webservice.api.RestCallError : Response Entity: <400,[{"messageCode":"1200","systemMessage":"Field validation error","details":"Field error in object '' on field 'supporter': rejected value [[]]; codes [NotEmpty.supporter,NotEmpty.java.util.Collection,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [.supporter,supporter]; arguments []; default message [supporter]]; default message [exam:supporter:notNull]","attributes":["exam","supporter","notNull"]}],[X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", Content-Type:"application/json", Transfer-Encoding:"chunked", Date:"Tue, 23 Nov 2021 02:36:50 GMT", Connection:"close"]>

02:36:58.982 INFO  [http-nio-0.0.0.0-8080-exec-6]:[ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.moodle.MoodleRestTemplateFactory] Successfully get access token from Moodle: LmsSetup [id=1, institutionId=1, name=DGS Exam, lmsType=MOODLE, lmsAuthName=admin, lmsAuthSecret=null, lmsApiUrl=http://exam.dgs.org.vn, lmsRestApiToken=null, proxyHost=null, proxyPort=null, proxyAuthUsername=null, proxyAuthSecret=null, active=true]

02:39:08.908 ERROR [scheduling-1]:[ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl] Failed to initialize remote proctoring room for exam: 1 and connection: 2fc10e63-f992-4796-825d-c1d3f8be4d99

java.lang.RuntimeException: RuntimeExceptionWrapper cause: 

    at ch.ethz.seb.sebserver.gbl.util.Result.getOrThrow(Result.java:144)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl.createNewCollectingRoom(RemoteProctoringRoomDAOImpl.java:424)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl.lambda$reservePlaceInCollectingRoom$16(RemoteProctoringRoomDAOImpl.java:304)

    at ch.ethz.seb.sebserver.gbl.util.Result.tryCatch(Result.java:328)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl.reservePlaceInCollectingRoom(RemoteProctoringRoomDAOImpl.java:288)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl$$FastClassBySpringCGLIB$$96fc9f80.invoke(<generated>)

    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)

    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)

    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl$$EnhancerBySpringCGLIB$$b690c021.reservePlaceInCollectingRoom(<generated>)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.getProctoringRoom(ExamProctoringRoomServiceImpl.java:344)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.assignToCollectingRoom(ExamProctoringRoomServiceImpl.java:287)

    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.updateProctoringCollectingRooms(ExamProctoringRoomServiceImpl.java:127)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.ExamSessionControlTask.examSessionUpdateTask(ExamSessionControlTask.java:121)

    at jdk.internal.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)

    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.base/java.lang.reflect.Method.invoke(Unknown Source)

    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)

    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

    at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)

    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at java.base/java.lang.Thread.run(Unknown Source)

Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

 at [Source: (StringReader); line: 1, column: 2]

    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)

    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)

    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:632)

    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1947)

    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:776)

    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4664)

    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4513)

    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3468)

    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3436)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.lambda$createAdHocMeeting$11(ZoomProctoringService.java:567)

    at ch.ethz.seb.sebserver.gbl.util.Result.tryCatch(Result.java:328)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.createAdHocMeeting(ZoomProctoringService.java:541)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.newCollectingRoom(ZoomProctoringService.java:385)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.lambda$getProctoringRoom$14(ExamProctoringRoomServiceImpl.java:347)

    at ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl.RemoteProctoringRoomDAOImpl.createNewCollectingRoom(RemoteProctoringRoomDAOImpl.java:423)

    ... 31 common frames omitted

02:39:08.909 ERROR [scheduling-1]:[ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl] Failed to assign connection to collecting room: ClientConnectionRecord [Hash = -1864803329, id=1, institutionId=1, examId=1, status=ACTIVE, connectionToken=2fc10e63-f992-4796-825d-c1d3f8be4d99, examUserSessionId=Trung Test (3), clientAddress=103.245.244.82, virtualClientAddress=null, vdi=0, vdiPairToken=null, creationTime=1637635133729, updateTime=1637635146941, remoteProctoringRoomId=null, remoteProctoringRoomUpdate=1]

java.lang.NullPointerException: null

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.assignToCollectingRoom(ExamProctoringRoomServiceImpl.java:300)

    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.updateProctoringCollectingRooms(ExamProctoringRoomServiceImpl.java:127)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.ExamSessionControlTask.examSessionUpdateTask(ExamSessionControlTask.java:121)

    at jdk.internal.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)

    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.base/java.lang.reflect.Method.invoke(Unknown Source)

    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)

    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

    at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)

    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at java.base/java.lang.Thread.run(Unknown Source)

02:39:40.431 ERROR [http-nio-0.0.0.0-8080-exec-2]:[ch.ethz.seb.sebserver.webservice.weblayer.api.APIExceptionHandler] Unexpected internal error catched at the API endpoint: 

java.lang.RuntimeException: RuntimeExceptionWrapper cause: 

    at ch.ethz.seb.sebserver.gbl.util.Result.getOrThrow(Result.java:144)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.lambda$createBreakOutRoom$11(ExamProctoringRoomServiceImpl.java:240)

    at ch.ethz.seb.sebserver.gbl.util.Result.tryCatch(Result.java:328)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.createBreakOutRoom(ExamProctoringRoomServiceImpl.java:227)

    at ch.ethz.seb.sebserver.webservice.weblayer.api.ExamProctoringController.openBreakOutRoom(ExamProctoringController.java:232)

    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.base/java.lang.reflect.Method.invoke(Unknown Source)

    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)

    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.filters.RemoteIpFilter.doFilter(RemoteIpFilter.java:932)

    at org.apache.catalina.filters.RemoteIpFilter.doFilter(RemoteIpFilter.java:989)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)

    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)

    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)

    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

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

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Unknown Source)

Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

 at [Source: (StringReader); line: 1, column: 2]

    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)

    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)

    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:632)

    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1947)

    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:776)

    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4664)

    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4513)

    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3468)

    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3436)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.lambda$createAdHocMeeting$11(ZoomProctoringService.java:567)

    at ch.ethz.seb.sebserver.gbl.util.Result.tryCatch(Result.java:328)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.createAdHocMeeting(ZoomProctoringService.java:541)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.newBreakOutRoom(ZoomProctoringService.java:397)

    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ExamProctoringRoomServiceImpl.lambda$createBreakOutRoom$11(ExamProctoringRoomServiceImpl.java:238)

    ... 92 common frames omitted

02:39:40.437 ERROR [http-nio-0.0.0.0-8080-exec-7]:[ch.ethz.seb.sebserver.gui.service.session.proctoring.MonitoringProctoringService] Failed to open single proctoring room for connection 2fc10e63-f992-4796-825d-c1d3f8be4d99 Unexpected error while rest call

02:39:41.413 ERROR [http-nio-0.0.0.0-8080-exec-6]:[org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[RWTServlet]] Servlet.service() for servlet [RWTServlet] in context with path [] threw exception

java.lang.NullPointerException: null

    at ch.ethz.seb.sebserver.gui.service.page.impl.ComposerServiceImpl.lambda$loadProctoringView$4(ComposerServiceImpl.java:93)

    at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)

    at java.base/java.util.HashMap$ValueSpliterator.tryAdvance(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)

    at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)

    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)

    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)

    at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)

    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)

    at java.base/java.util.stream.ReferencePipeline.findFirst(Unknown Source)

    at ch.ethz.seb.sebserver.gui.service.page.impl.ComposerServiceImpl.loadProctoringView(ComposerServiceImpl.java:94)

    at ch.ethz.seb.sebserver.gui.RAPConfiguration$RAPRemoteProcotringEntryPointFactory$1.createContents(RAPConfiguration.java:121)

    at org.eclipse.rap.rwt.application.AbstractEntryPoint.createUI(AbstractEntryPoint.java:60)

    at org.eclipse.rap.rwt.internal.lifecycle.PrepareUIRoot.execute(PrepareUIRoot.java:41)

    at org.eclipse.rap.rwt.internal.lifecycle.PhaseExecutor.execute(PhaseExecutor.java:38)

    at org.eclipse.rap.rwt.internal.lifecycle.SimpleLifeCycle.execute(SimpleLifeCycle.java:46)

    at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.executeLifeCycle(RWTMessageHandler.java:57)

    at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.handleMessage(RWTMessageHandler.java:41)

    at org.eclipse.rap.rwt.internal.remote.MessageChainElement.handleMessage(MessageChainElement.java:29)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processMessage(LifeCycleServiceHandler.java:128)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:100)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)

    at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.filters.RemoteIpFilter.doFilter(RemoteIpFilter.java:932)

    at org.apache.catalina.filters.RemoteIpFilter.doFilter(RemoteIpFilter.java:989)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

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

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Unknown Source)

02:39:41.428 ERROR [http-nio-0.0.0.0-8080-exec-6]:[org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[RWTServlet]] Servlet.service() for servlet [RWTServlet] threw exception

org.eclipse.rap.json.ParseException: Unexpected end of input at 1:-1

    at org.eclipse.rap.json.JsonParser.error(JsonParser.java:371)

    at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:362)

    at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:97)

    at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:62)

    at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:92)

    at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:123)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.readRequestMessage(LifeCycleServiceHandler.java:108)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:88)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)

    at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilterNestedErrorDispatch(OncePerRequestFilter.java:251)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.forwardToEntryPoint(InstitutionalAuthenticationEntryPoint.java:198)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.commence(InstitutionalAuthenticationEntryPoint.java:170)

    at org.springframework.security.web.access.ExceptionTranslationFilter.sendStartAuthentication(ExceptionTranslationFilter.java:212)

    at org.springframework.security.web.access.ExceptionTranslationFilter.handleSpringSecurityException(ExceptionTranslationFilter.java:184)

    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:140)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:398)

    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:257)

    at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:352)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)

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

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Unknown Source)

02:39:41.429 ERROR [http-nio-0.0.0.0-8080-exec-6]:[org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]] Servlet.service() for servlet [dispatcherServlet] threw exception

org.eclipse.rap.json.ParseException: Unexpected end of input at 1:-1

    at org.eclipse.rap.json.JsonParser.error(JsonParser.java:371)

    at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:362)

    at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:97)

    at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:62)

    at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:92)

    at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:123)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.readRequestMessage(LifeCycleServiceHandler.java:108)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:88)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)

    at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilterNestedErrorDispatch(OncePerRequestFilter.java:251)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.forwardToEntryPoint(InstitutionalAuthenticationEntryPoint.java:198)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.commence(InstitutionalAuthenticationEntryPoint.java:170)

    at org.springframework.security.web.access.ExceptionTranslationFilter.sendStartAuthentication(ExceptionTranslationFilter.java:212)

    at org.springframework.security.web.access.ExceptionTranslationFilter.handleSpringSecurityException(ExceptionTranslationFilter.java:184)

    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:140)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:398)

    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:257)

    at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:352)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)

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

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Unknown Source)

02:39:41.429 ERROR [http-nio-0.0.0.0-8080-exec-6]:[org.apache.catalina.core.ContainerBase.[Tomcat].[localhost]] Exception Processing ErrorPage[errorCode=0, location=/error]

org.eclipse.rap.json.ParseException: Unexpected end of input at 1:-1

    at org.eclipse.rap.json.JsonParser.error(JsonParser.java:371)

    at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:362)

    at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:97)

    at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:62)

    at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:92)

    at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:123)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.readRequestMessage(LifeCycleServiceHandler.java:108)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:88)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)

    at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)

    at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)

    at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilterNestedErrorDispatch(OncePerRequestFilter.java:251)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.forwardToEntryPoint(InstitutionalAuthenticationEntryPoint.java:198)

    at ch.ethz.seb.sebserver.gui.InstitutionalAuthenticationEntryPoint.commence(InstitutionalAuthenticationEntryPoint.java:170)

    at org.springframework.security.web.access.ExceptionTranslationFilter.sendStartAuthentication(ExceptionTranslationFilter.java:212)

    at org.springframework.security.web.access.ExceptionTranslationFilter.handleSpringSecurityException(ExceptionTranslationFilter.java:184)

    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:140)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)

    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:398)

    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:257)

    at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:352)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)

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

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Unknown Source)
anhefti commented 2 years ago

Hi and thank you for the logs

It seems that your Zoom API is responding with unexpected data while SEB Server tries to create a new meeting room -->

Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (StringReader); line: 1, column: 2]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:632)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1947)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:776)
    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4664)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4513)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3468)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3436)
    at ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring.ZoomProctoringService.lambda$createAdHocMeeting$11(ZoomProctoringService.java:567)

The '<' character indicates that the Zoom API responds with a wrong format (should be JSON) either HTML or XML. Unfortunately I'm not able to see more at this Point because the logging is not printing the whole Zoom response in this case. What SEB Server is doing is the following: For every new Zoom Meeting a Zoom User is created to manage the Meeting. This is to avoid request limits for the meeting that are restricted per Zoom User. Then create a new Meeting with this User. The creation of the meeting seems to fail on your account.

My first assumption is that your account has not the needed rights and/or privileges to do so. But the cause may be another since we are not Zoom API experts.

SEB Server uses the following Zoom API requests to create new Users and Meetings:

https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate

If you have a curl Tool like Postman you are able to use this API endpoints with your Zoom Account and are able to figure out what exactly happen and what Zoom is responding.