oscal-rest-service
oscal-rest-service copied to clipboard
Warnings and Errors in liboscal-java Throw Exceptions and Crash Catalog Editing in REST Mode
Hi, big fan of your tools. I was experimenting with this tool recently in the oscal-editor-deployment all in one utility with latest. I get the following errors:
Fullish stack trace
2022-10-07 05:23:43.908 ERROR 1 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataRetrievalFailureException: Failure in loading Oscal object.; nested exception is java.io.IOException: java.lang.IllegalArgumentException: Unable to set the value of field '_uuid' in class 'gov.nist.secauto.oscal.lib.model.Property'.] with root cause
java.lang.IllegalAccessException: interface gov.nist.secauto.metaschema.binding.model.IBoundNamedInstance cannot access a member of class gov.nist.secauto.oscal.lib.model.Property with modifiers "private"
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361) ~[na:na]
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) ~[na:na]
at java.base/java.lang.reflect.Field.checkAccess(Field.java:1075) ~[na:na]
at java.base/java.lang.reflect.Field.set(Field.java:778) ~[na:na]
at gov.nist.secauto.metaschema.binding.model.IBoundNamedInstance.setValue(IBoundNamedInstance.java:156) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:470) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readItem(DefaultAssemblyClassBinding.java:381) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ClassDataTypeHandler.get(ClassDataTypeHandler.java:93) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readItem(AbstractNamedModelProperty.java:282) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.ListPropertyInfo.readValue(ListPropertyInfo.java:153) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedModelProperty.readInternal(AbstractNamedModelProperty.java:233) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.AbstractNamedProperty.read(AbstractNamedProperty.java:87) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readInternal(DefaultAssemblyClassBinding.java:449) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.DefaultAssemblyClassBinding.readObject(DefaultAssemblyClassBinding.java:345) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.RootAssemblyDefinition.readObject(RootAssemblyDefinition.java:76) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.model.RootAssemblyDefinition.readRoot(RootAssemblyDefinition.java:244) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.json.DefaultJsonDeserializer.deserializeToNodeItemInternal(DefaultJsonDeserializer.java:103) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.AbstractDeserializer.deserializeToNodeItem(AbstractDeserializer.java:91) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.IDeserializer.deserializeToNodeItem(IDeserializer.java:171) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.DefaultBoundLoader.loadInternal(DefaultBoundLoader.java:453) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.DefaultBoundLoader.load(DefaultBoundLoader.java:435) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.IBoundLoader.load(IBoundLoader.java:261) ~[metaschema-java-binding-0.9.0.jar!/:na]
at gov.nist.secauto.metaschema.binding.io.IBoundLoader.load(IBoundLoader.java:281) ~[metaschema-java-binding-0.9.0.jar!/:na]
at com.easydynamics.oscal.data.repository.file.BaseOscalRepoFileImpl.findById(BaseOscalRepoFileImpl.java:171) ~[oscal-data-repository-file-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscal.data.repository.file.BaseOscalRepoFileImpl.findById(BaseOscalRepoFileImpl.java:36) ~[oscal-data-repository-file-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscal.data.repository.file.BaseOscalRepoFileImpl$$FastClassBySpringCGLIB$$51eb9204.invoke(<generated>) ~[oscal-data-repository-file-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.22.jar!/:5.3.22]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.22.jar!/:5.3.22]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.22.jar!/:5.3.22]
at com.easydynamics.oscal.data.repository.file.OscalCatalogRepoFileImpl$$EnhancerBySpringCGLIB$$decf60e6.findById(<generated>) ~[oscal-data-repository-file-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscal.service.impl.BaseOscalObjectServiceImpl.findById(BaseOscalObjectServiceImpl.java:93) ~[oscal-object-service-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscal.service.impl.BaseOscalObjectServiceImpl.findById(BaseOscalObjectServiceImpl.java:21) ~[oscal-object-service-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscalrestservice.api.BaseOscalController.findById(BaseOscalController.java:43) ~[classes!/:0.0.1-SNAPSHOT]
at com.easydynamics.oscalrestservice.api.CatalogController.findById(CatalogController.java:49) ~[classes!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.22.jar!/:5.3.22]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar!/:5.3.22]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar!/:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
2022-10-07 05:23:48.880 WARN 1 --- [nio-8080-exec-3] g.n.s.m.m.c.c.DefaultConstraintValidator : WARNING: (/catalog/back-matter[1]/resource[73]) The cardinality '0' is below the required minimum '1' for items matching the expression 'rlink|base64'.
2022-10-07 05:23:48.883 WARN 1 --- [nio-8080-exec-3] g.n.s.m.m.c.c.DefaultConstraintValidator : WARNING: (/catalog/back-matter[1]/resource[98]) The cardinality '0' is below the required minimum '1' for items matching the expression 'rlink|base64'.
2022-10-07 05:23:48.883 WARN 1 --- [nio-8080-exec-3] g.n.s.m.m.c.c.DefaultConstraintValidator : WARNING: (/catalog/back-matter[1]/resource[100]) The cardinality '0' is below the required minimum '1' for items matching the expression 'rlink|base64'.
2022-10-07 05:23:48.899 DEBUG 1 --- [nio-8080-exec-3] c.e.o.api.CatalogController : Returning wrapped response of type: java.util.ArrayList
2022-10-07 05:23:48.901 DEBUG 1 --- [ task-4] c.e.o.api.CatalogController : Starting marshalling of object type: java.util.ArrayList
2022-10-07 05:23:51.130 DEBUG 1 --- [ task-4] c.e.o.api.CatalogController : Marshalling complete
It seems you're using the most current liboscal-java, so I assume this is an ongoing issue. I am not sure this is a dupe of #111 or another issue altogether. I do recall reports of, in oscal-cli (and I am not sure this bubbles up from liboscal-java): WARNING
messages at one time said as much might have been returned as errors when wrapped in a CLI context, not just warnings. Could this explain the stack trace and issues with validations crashing the whole thing? I got it to stop crashing once I slimmed down a catalog I wanted to edit in REST Mode to the bare essentials like so. So, no constraint warnings, no crashes!
Not sure how that helps or how to report that bug to NIST and liboscal-java though.
Example Catalog Shaved Down Until Successful
{
"catalog": {
"uuid": "fdac0321-959f-43ec-a91d-322da7d9761c",
"metadata": {
"title": "Electronic Version of NIST SP 800-53 Rev 5 Controls and SP 800-53A Rev 5 Assessment Procedures",
"last-modified": "2022-08-23T10:36:49.1330265-04:00",
"version": "5.1.2",
"oscal-version": "1.0.0",
"props": [
{
"name": "keywords",
"value": "Assessment, assessment plan, assurance, availability, computer security, confidentiality, control, control assessment, cybersecurity, FISMA, information security, information system, integrity, personally identifiable information, OSCAL, Open Security Controls Assessment Language, Privacy Act, privacy controls, privacy functions, privacy requirements, Risk Management Framework, security controls, security functions, security requirements, system, system security"
}
],
"links": [
{
"href": "#c3397cc9-83c6-4459-adb2-836739dc1b94",
"rel": "alternate"
},
{
"href": "#f7cf488d-bc64-4a91-a994-810e153ee481",
"rel": "canonical"
}
],
"roles": [
{
"id": "creator",
"title": "Document creator"
},
{
"id": "contact",
"title": "Contact"
}
],
"parties": [
{
"uuid": "41a93829-b76b-43ec-b9e7-250553511549",
"type": "organization",
"name": "Joint Task Force, Interagency Working Group",
"email-addresses": [
"[email protected]"
],
"addresses": [
{
"addr-lines": [
"National Institute of Standards and Technology",
"Attn: Computer Security Division",
"Information Technology Laboratory",
"100 Bureau Drive (Mail Stop 8930)"
],
"city": "Gaithersburg",
"state": "MD",
"postal-code": "20899-8930"
}
]
}
],
"responsible-parties": [
{
"role-id": "creator",
"party-uuids": [
"41a93829-b76b-43ec-b9e7-250553511549"
]
},
{
"role-id": "contact",
"party-uuids": [
"41a93829-b76b-43ec-b9e7-250553511549"
]
}
]
},
"groups": [
{
"id": "ac",
"class": "family",
"title": "Access Control",
"controls": [
{
"id": "ac-1",
"class": "SP800-53",
"title": "Policy and Procedures",
"params": [
{
"id": "ac-1_prm_1",
"props": [
{
"name": "aggregates",
"ns": "http://csrc.nist.gov/ns/rmf",
"value": "ac-01_odp.01"
},
{
"name": "aggregates",
"ns": "http://csrc.nist.gov/ns/rmf",
"value": "ac-01_odp.02"
}
],
"label": "organization-defined personnel or roles"
},
{
"id": "ac-01_odp.01",
"props": [
{
"name": "label",
"value": "AC-01_ODP[01]",
"class": "sp800-53a"
}
],
"label": "personnel or roles",
"guidelines": [
{
"prose": "personnel or roles to whom the access control policy is to be disseminated is/are defined;"
}
]
},
{
"id": "ac-01_odp.02",
"props": [
{
"name": "label",
"value": "AC-01_ODP[02]",
"class": "sp800-53a"
}
],
"label": "personnel or roles",
"guidelines": [
{
"prose": "personnel or roles to whom the access control procedures are to be disseminated is/are defined;"
}
]
},
{
"id": "ac-01_odp.03",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_2"
},
{
"name": "label",
"value": "AC-01_ODP[03]",
"class": "sp800-53a"
}
],
"select": {
"how-many": "one-or-more",
"choice": [
"organization-level",
"mission/business process-level",
"system-level"
]
}
},
{
"id": "ac-01_odp.04",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_3"
},
{
"name": "label",
"value": "AC-01_ODP[04]",
"class": "sp800-53a"
}
],
"label": "official",
"guidelines": [
{
"prose": "an official to manage the access control policy and procedures is defined;"
}
]
},
{
"id": "ac-01_odp.05",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_4"
},
{
"name": "label",
"value": "AC-01_ODP[05]",
"class": "sp800-53a"
}
],
"label": "frequency",
"guidelines": [
{
"prose": "the frequency at which the current access control policy is reviewed and updated is defined;"
}
]
},
{
"id": "ac-01_odp.06",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_5"
},
{
"name": "label",
"value": "AC-01_ODP[06]",
"class": "sp800-53a"
}
],
"label": "events",
"guidelines": [
{
"prose": "events that would require the current access control policy to be reviewed and updated are defined;"
}
]
},
{
"id": "ac-01_odp.07",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_6"
},
{
"name": "label",
"value": "AC-01_ODP[07]",
"class": "sp800-53a"
}
],
"label": "frequency",
"guidelines": [
{
"prose": "the frequency at which the current access control procedures are reviewed and updated is defined;"
}
]
},
{
"id": "ac-01_odp.08",
"props": [
{
"name": "alt-identifier",
"value": "ac-1_prm_7"
},
{
"name": "label",
"value": "AC-01_ODP[08]",
"class": "sp800-53a"
}
],
"label": "events",
"guidelines": [
{
"prose": "events that would require procedures to be reviewed and updated are defined;"
}
]
}
],
"props": [
{
"name": "label",
"value": "AC-1"
},
{
"name": "label",
"value": "AC-01",
"class": "sp800-53a"
},
{
"name": "sort-id",
"value": "ac-01"
}
],
"links": [],
"parts": [
{
"id": "ac-1_smt",
"name": "statement",
"parts": [
{
"id": "ac-1_smt.a",
"name": "item",
"props": [
{
"name": "label",
"value": "a."
}
],
"prose": "Develop, document, and disseminate to {{ insert: param, ac-1_prm_1 }}:",
"parts": [
{
"id": "ac-1_smt.a.1",
"name": "item",
"props": [
{
"name": "label",
"value": "1."
}
],
"prose": "{{ insert: param, ac-01_odp.03 }} access control policy that:",
"parts": [
{
"id": "ac-1_smt.a.1.a",
"name": "item",
"props": [
{
"name": "label",
"value": "(a)"
}
],
"prose": "Addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and"
},
{
"id": "ac-1_smt.a.1.b",
"name": "item",
"props": [
{
"name": "label",
"value": "(b)"
}
],
"prose": "Is consistent with applicable laws, executive orders, directives, regulations, policies, standards, and guidelines; and"
}
]
},
{
"id": "ac-1_smt.a.2",
"name": "item",
"props": [
{
"name": "label",
"value": "2."
}
],
"prose": "Procedures to facilitate the implementation of the access control policy and the associated access controls;"
}
]
},
{
"id": "ac-1_smt.b",
"name": "item",
"props": [
{
"name": "label",
"value": "b."
}
],
"prose": "Designate an {{ insert: param, ac-01_odp.04 }} to manage the development, documentation, and dissemination of the access control policy and procedures; and"
},
{
"id": "ac-1_smt.c",
"name": "item",
"props": [
{
"name": "label",
"value": "c."
}
],
"prose": "Review and update the current access control:",
"parts": [
{
"id": "ac-1_smt.c.1",
"name": "item",
"props": [
{
"name": "label",
"value": "1."
}
],
"prose": "Policy {{ insert: param, ac-01_odp.05 }} and following {{ insert: param, ac-01_odp.06 }} ; and"
},
{
"id": "ac-1_smt.c.2",
"name": "item",
"props": [
{
"name": "label",
"value": "2."
}
],
"prose": "Procedures {{ insert: param, ac-01_odp.07 }} and following {{ insert: param, ac-01_odp.08 }}."
}
]
}
]
},
{
"id": "ac-1_gdn",
"name": "guidance",
"prose": "Access control policy and procedures address the controls in the AC family that are implemented within systems and organizations. The risk management strategy is an important factor in establishing such policies and procedures. Policies and procedures contribute to security and privacy assurance. Therefore, it is important that security and privacy programs collaborate on the development of access control policy and procedures. Security and privacy program policies and procedures at the organization level are preferable, in general, and may obviate the need for mission- or system-specific policies and procedures. The policy can be included as part of the general security and privacy policy or be represented by multiple policies reflecting the complex nature of organizations. Procedures can be established for security and privacy programs, for mission or business processes, and for systems, if needed. Procedures describe how the policies or controls are implemented and can be directed at the individual or role that is the object of the procedure. Procedures can be documented in system security and privacy plans or in one or more separate documents. Events that may precipitate an update to access control policy and procedures include assessment or audit findings, security incidents or breaches, or changes in laws, executive orders, directives, regulations, policies, standards, and guidelines. Simply restating controls does not constitute an organizational policy or procedure."
},
{
"id": "ac-1_obj",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.a",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.a-1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.[01]",
"class": "sp800-53a"
}
],
"prose": "an access control policy is developed and documented;"
},
{
"id": "ac-1_obj.a-2",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.[02]",
"class": "sp800-53a"
}
],
"prose": "the access control policy is disseminated to {{ insert: param, ac-01_odp.01 }};"
},
{
"id": "ac-1_obj.a-3",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.[03]",
"class": "sp800-53a"
}
],
"prose": "access control procedures to facilitate the implementation of the access control policy and associated controls are developed and documented;"
},
{
"id": "ac-1_obj.a-4",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.[04]",
"class": "sp800-53a"
}
],
"prose": "the access control procedures are disseminated to {{ insert: param, ac-01_odp.02 }};"
},
{
"id": "ac-1_obj.a.1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.a.1.a",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.a.1.a-1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[01]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses purpose;"
},
{
"id": "ac-1_obj.a.1.a-2",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[02]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses scope;"
},
{
"id": "ac-1_obj.a.1.a-3",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[03]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses roles;"
},
{
"id": "ac-1_obj.a.1.a-4",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[04]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses responsibilities;"
},
{
"id": "ac-1_obj.a.1.a-5",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[05]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses management commitment;"
},
{
"id": "ac-1_obj.a.1.a-6",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[06]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses coordination among organizational entities;"
},
{
"id": "ac-1_obj.a.1.a-7",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(a)[07]",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy addresses compliance;"
}
]
},
{
"id": "ac-1_obj.a.1.b",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01a.01(b)",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.03 }} access control policy is consistent with applicable laws, Executive Orders, directives, regulations, policies, standards, and guidelines;"
}
]
}
]
},
{
"id": "ac-1_obj.b",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01b.",
"class": "sp800-53a"
}
],
"prose": "the {{ insert: param, ac-01_odp.04 }} is designated to manage the development, documentation, and dissemination of the access control policy and procedures;"
},
{
"id": "ac-1_obj.c",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.c.1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.01",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.c.1-1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.01[01]",
"class": "sp800-53a"
}
],
"prose": "the current access control policy is reviewed and updated {{ insert: param, ac-01_odp.05 }};"
},
{
"id": "ac-1_obj.c.1-2",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.01[02]",
"class": "sp800-53a"
}
],
"prose": "the current access control policy is reviewed and updated following {{ insert: param, ac-01_odp.06 }};"
}
]
},
{
"id": "ac-1_obj.c.2",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.02",
"class": "sp800-53a"
}
],
"parts": [
{
"id": "ac-1_obj.c.2-1",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.02[01]",
"class": "sp800-53a"
}
],
"prose": "the current access control procedures are reviewed and updated {{ insert: param, ac-01_odp.07 }};"
},
{
"id": "ac-1_obj.c.2-2",
"name": "assessment-objective",
"props": [
{
"name": "label",
"value": "AC-01c.02[02]",
"class": "sp800-53a"
}
],
"prose": "the current access control procedures are reviewed and updated following {{ insert: param, ac-01_odp.08 }}."
}
]
}
]
}
]
},
{
"id": "ac-1_asm-examine",
"name": "assessment-method",
"props": [
{
"name": "method",
"ns": "http://csrc.nist.gov/ns/rmf",
"value": "EXAMINE"
},
{
"name": "label",
"value": "AC-01-Examine",
"class": "sp800-53a"
}
],
"parts": [
{
"name": "assessment-objects",
"prose": "Access control policy and procedures\n\nsystem security plan\n\nprivacy plan\n\nother relevant documents or records"
}
]
},
{
"id": "ac-1_asm-interview",
"name": "assessment-method",
"props": [
{
"name": "method",
"ns": "http://csrc.nist.gov/ns/rmf",
"value": "INTERVIEW"
},
{
"name": "label",
"value": "AC-01-Interview",
"class": "sp800-53a"
}
],
"parts": [
{
"name": "assessment-objects",
"prose": "Organizational personnel with access control responsibilities\n\norganizational personnel with information security with information security and privacy responsibilities"
}
]
}
]
}
]
}
],
"back-matter": {
"resources": [
{
"uuid": "91f992fb-f668-4c91-a50f-0f05b95ccee3",
"title": "32 CFR 2002",
"citation": {
"text": "Code of Federal Regulations, Title 32, *Controlled Unclassified Information* (32 C.F.R. 2002)."
},
"rlinks": [
{
"href": "https://www.federalregister.gov/documents/2016/09/14/2016-21665/controlled-unclassified-information"
}
]
}
]
}
}
}