ow2-proactive / catalog Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Affero General Public License v3.0
License: GNU Affero General Public License v3.0
This issue doesn't happen directly from REST API, but inside integration tests.
The integration tests that are failing sometimes:
testDeleteTheLatestWorkflowRevisionOfMultipleRevisions
testDeleteAPreviousWorkflowRevisionOfMultipleRevisions
The error is next:
org.hsqldb.HsqlException: integrity constraint violation: foreign key no action; FK2N3992ANCPWW3TASGCDQY9S5O table: CATALOG_OBJECT_REVISION
at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.StatementDML.performReferentialActions(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.StatementDML.delete(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.StatementDML.executeDeleteStatement(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.StatementDML.getResult(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.StatementDMQL.execute(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.Session.executeCompiledStatement(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.Session.execute(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source) ~[hsqldb-r5658-f2e27a7.jar:private-2016/10/31-16:34:49]
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3233) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3470) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:98) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:468) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3135) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2352) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:147) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:231) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final]
at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:61) ~[hibernate-entitymanager-5.1.0.Final.jar:5.1.0.Final]
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:517) ~[spring-orm-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:131) ~[spring-data-jpa-1.9.4.RELEASE.jar:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at com.sun.proxy.$Proxy129.delete(Unknown Source) ~[?:?]
at org.ow2.proactive.catalog.rest.service.CatalogObjectRevisionService.delete(CatalogObjectRevisionService.java:319) ~[main/:?]
at org.ow2.proactive.catalog.rest.service.CatalogObjectRevisionService$$FastClassBySpringCGLIB$$41228097.invoke() ~[main/:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.ow2.proactive.catalog.rest.service.CatalogObjectRevisionService$$EnhancerBySpringCGLIB$$b1122bed_12.delete() ~[main/:?]
at org.ow2.proactive.catalog.rest.controller.CatalogObjectRevisionController.delete(CatalogObjectRevisionController.java:129) ~[main/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:891) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:654) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) [tomcat-embed-core-8.0.33.jar:8.0.33]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) [tomcat-embed-core-8.0.33.jar:8.0.33]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.33.jar:8.0.33]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Hello there!
My name is Ana. I noted that you use the mutation testing tool Pit in the project.
I am a postdoctoral researcher at the University of Seville (Spain), and my colleagues and I are studying how mutation testing tools are used in practice. With this aim in mind, we have analysed over 3,500 public GitHub repositories using mutation testing tools, including yours! This work has recently been published in a journal paper available at https://link.springer.com/content/pdf/10.1007/s10664-022-10177-8.pdf.
To complete this study, we are asking for your help to understand better how mutation testing is used in practice, please! We would be extremely grateful if you could contribute to this study by answering a brief survey of 21 simple questions (no more than 6 minutes). This is the link to the questionnaire https://forms.gle/FvXNrimWAsJYC1zB9.
We apologize if you have already received message multiple times or if you have already had the opportunity to complete the survey. If you have already shared your feedback, we want to convey our appreciation, kindly disregard this message, and please accept our apologies for any inconvenience.
Drop me an e-mail if you have any questions or comments ([email protected]). Thank you very much in advance!!
During upload the archive of objects to the catalog it will be created new objects if they not exist yet in catalog.
For existing objects in catalog during upload from archive it will be created new revisions, but the kind, contentType will not be updated.
In general it can be improved to updated kind, contentType, during creating revisions.
The auto generated classes for query DSL language are not used . We need to remove antlr dependencies and a generation process of this code.
When a user wants to add a workflow to the bucket without name the returned exception is 422 unprocessable entity. It would be more relevant to have a Bad Request 400 error.
That exception is returned because the server consider that when a name is not provide, the user should provide a zip file. This ambiguity relies on the request double purpose, on one hand it handles archive on the other hand it handles workflows.
The solution would be split the current request into two requests.
We should have the ability to filter the catalog/buckets
endpoint by name because other proactive services might want to reference those buckets (like the cloud-automation service).
Doing so would allow us to simplify the injection process of objects in the catalog and decouple it from the other services.
At the moment, such services rely on the autogenerated IDs of buckets, which are likely to change when we inject buckets into the catalog.
This change implies to think on how to handle buckets with the same name (there is no UNIQUE constraint on this field at the moment).
With the swagger interface :
Upload it with the content-type "myApp" on /catalog/swagger-ui.html#!/catalog-object-controller/createUsingPOST_1
=> the object is well uploaded
Get the raw object on /catalog/swagger-ui.html#!/catalog-object-controller/getRawUsingGET
=> it fails
It seems that it fail only through the swagger interface.
If the content type is "application/myApp", it works.
The catalog should not allow to have a different name for a workflow name and its name describe in the xml.
When creating a catalog object with a wrong name (ex: POST with name "$&%ae"), we get 201. But then it's impossible to access the object (GET / DELETE return 404)
When using MySQL version 5.7, hibernate from catalog
triggers the following error during startup:
org.hibernate.tool.schema.spi.CommandAcceptanceException: Unable to execute command [create index IDX86enfx0lwjc4ygjei28279a8 on METADATA_KEY_VALUE (PA_VALUE)]
Caused by: java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 3072 bytes
From KeyValueLabelMetadataEntity, the index length is indeed too long as both PA_KEY
and PA_VALUE
columns are indexed and the size of PA_VALUE
itself is fixed to 10KB (see #78 for more details).
Example of a worfklow stored in the catalog:
<?xml version="1.0" encoding="UTF-8"?>
<job xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:proactive:jobdescriptor:3.8"
xsi:schemaLocation="urn:proactive:jobdescriptor:3.8 http://www.activeeon.com/public_content/schemas/proactive/jobdescriptor/3.8/schedulerjob.xsd"
name="native_task_linux">
<variables>
<variable name="NUMBER_OF_PING" value="4"/>
</variables>
<description>
Here a native command will be executed, with an argument.
We also define a variable above and use it as parameter.
</description>
<genericInformation>
<info name="pca.action.icon" value="/automation-dashboard/styles/patterns/img/wf-icons/native_task_linux.png"/>
</genericInformation>
<genericInformation>
<info name="bucketName" value="basic-examples"/>
<info name="pca.action.icon" value="/automation-dashboard/styles/patterns/img/wf-icons/native_task_linux.png"/>
<info name="group" value="public-objects"/>
</genericInformation>
<taskFlow>
<task name="Linux">
<genericInformation>
<info name="task.icon" value="/automation-dashboard/styles/patterns/img/wf-icons/native_task_linux.png"/>
</genericInformation>
<nativeExecutable>
<staticCommand value="ping">
<arguments>
<argument value="-c"/>
<argument value="${NUMBER_OF_PING}"/>
<argument value="127.0.0.1"/>
</arguments>
</staticCommand>
</nativeExecutable>
</task>
</taskFlow>
</job>
The extra generic info block was generated by the catalog itself, but does not properly handle initial workflow identation.
The swagger api has parameters that are not implemented for get request on the following path /buckets/{bucketId}/resources.
Those parameters are pagination parameters : "page","size" and "sort".
In order to simplify the model and usage of the catalog, we can remove the actual unicity constraint that we have on the owner+bucket_name and put it on the bucket_name only instead.
When using swagger to get an archive of workflows the URL parameters are encoded and ,
becomes %2
. It breaks the request and return an empty or an invalid zip.
With the following configuration :
bucket1(owner:bot) containing an object with the kind "worklfow"
bucket2(owner:toto) containing an object with the kind "workflow"
bucket3(owner:bot) not containing an object with the kind "worklfow"
Get /buckets?owner=bot&kind=worklfow
return bucket1 and bucket3
The response is neither a logic AND or OR. It seems that if owner parameter is passed, kind parameter is ignored.
Actually, the security of the catalog is handled by this property pa.catalog.security.required.sessionid
.
When disabled (value =false), then sessionid is not required. In this case, providing good, wrong or empty value gives the same result.
When enabled (value =true), then normally providing a good sessionid has to be required which is not the case for most of the methods. Indeed, checkAccessBySessionIdForBucketAndThrowIfDeclined method asks first about public buckets. So if is false then sessionId is completely neglected.
public void checkAccessBySessionIdForBucketAndThrowIfDeclined(boolean sessionIdRequired, String sessionId,
String bucketName) {
if (!isAPublicBucket(bucketName) && sessionIdRequired) {
checkBucketPermission(sessionId, bucketName);
}
}
However, checkAccessBySessionIdForOwnerOrGroupAndThrowIfDeclined seems to be correct.
The overall behavior should be improved which is quite complex (new design). Indeed, using the script referencing from the studio requires that the script is loaded from a public bucket.
Importing a workflow with the following variable named DOCUMENT_JSON
and its value:
{ "documents": [ { "id": "1", "text": "This document is in English." }, { "id": "2", "text": "Este documento está en inglés." }, { "id": "3", "text": "Ce document est en anglais." }, { "id": "4", "text": "æ�¬æ��件为è�±æ��" }, { "id": "5", "text": "ÐÑ�оÑ� докÑ�менÑ� наÑ�одиÑ�Ñ�Ñ� на английÑ�ком Ñ�зÑ�ке." } ] }
fails because of the weird characters (scroll to the far right of the value) with the following exception:
[2018-08-22 09:35:13,858 461159-175 WARN o.h.e.j.s.SqlExceptionHelper] SQL Error: 1366, SQLState: 22007 [1195/5212]
[2018-08-22 09:35:13,858 461159-175 ERROR o.h.e.j.s.SqlExceptionHelper] (conn=575) Incorrect string value: '\xC2\x9C\xC2\xAC\xC3\xA6...' for column 'PA_VALUE' at row 1
[2018-08-22 09:35:13,873 461159-175 WARN r.e.ExceptionHandlerController] Exception: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement
[2018-08-22 09:35:13,876 461159-175 WARN o.e.j.s.ServletHandler]
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; nested excepti
on is org.hibernate.exception.DataException: could not execute statement
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:979)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
...
Caused by: java.sql.SQLException: Incorrect string value: '\xC2\x9C\xC2\xAC\xC3\xA6...' for column 'PA_VALUE' at row 1
Query is: insert into METADATA_KEY_VALUE (CATALOGOBJECTREVISION, PA_KEY, LABEL, PA_VALUE, ID) values (?, ?, ?, ?, ?), parameters [70,'DOCUMENTS_JSON','variable','{ "documents": [ { "id
": "1", "text": "This document is in English." }, { "id": "2", "text": "Este documento está en inglés." }, { "id": "3",
"text": "Ce document est en anglais." }, { "id": "4", "text": "æ¬æ件为è±æ" }á é { "id": "5",
"text": "ÐÑÐ¾Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ð½Ð°Ñ æ¬æ件为è±æ
одиÑÑÑ ÐÐÑоÑÐдокÑменÑÑнаѺе." } ] }',573]
одиÑÑÑoнаaанглийÑкомuÑзÑкеeryTool.exceptionWithQuery(LogQueryTool.java:153)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:255)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:209)
... 73 more
When a third party (proxy/router) is set in front of the catalog service, the latter is not aware of the domain exposed by the third party and is not capable to generate valid URLS anymore. It is partially fixed for HATEOAS by #44 but not for the Swagger UI which still uses the local interface by default.
A possible fix/improvement would be to let that third-party add a special metadata in the header so the catalog service is aware of the forwarding, as explained in this link.
This should also be explained somewhere in the documentation.
There is a folder (name __MACOSX) inside Mac archives and the catalog tries to parse it as a workflow. As a result, we get an error "The object(s) couldn't be uploaded: It was not possible to parse an object: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0x0 (at char #99, byte #-1)" and no workflow is uploaded.
When we remove this __MACOSX folder, the upload of the archive works.
Submitting a workflow with kind="workflow" parses the workflow, removes the Generic Information inside the workflow xml and adds new Generic Information.
That process has several drawbacks:
On PostgreSQL, the column PA_VALUE
of KeyValueLabelMetadataEntity
is translated to a varchar
with a default size of 255 bytes.
Regarding PostgreSQL and MySQL limitations (10485760 and 65535 bytes respectively), there is still a large pace to increase the size of this column.
Hello, I'm encountering an issue while compiling catalog
.
I run the following commands:
git clone https://github.com/ow2-proactive/catalog
cd catalog
./gradlew clean compileTest
I obtained the following error, obtained using the `--stacktrace1 command line options with the same gradle tasks:
* Exception is:
org.gradle.api.InvalidUserDataException: Cannot change dependencies of configuration 'detachedConfiguration1' after it has been resolved.
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.validateMutation(DefaultConfiguration.java:597)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$2.run(DefaultConfiguration.java:145)
at org.gradle.api.internal.DefaultDomainObjectCollection.assertMutable(DefaultDomainObjectCollection.java:267)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:158)
at org.gradle.api.internal.DelegatingDomainObjectSet.add(DelegatingDomainObjectSet.java:81)
at java_util_Set$add$0.call(Unknown Source)
at io.spring.gradle.dependencymanagement.DependencyManagement$_resolve_closure2.doCall(DependencyManagement.groovy:152)
at io.spring.gradle.dependencymanagement.DependencyManagement.resolve(DependencyManagement.groovy:152)
at io.spring.gradle.dependencymanagement.DependencyManagement.resolveIfNecessary(DependencyManagement.groovy:134)
at io.spring.gradle.dependencymanagement.DependencyManagement.getExclusions(DependencyManagement.groovy:128)
at io.spring.gradle.dependencymanagement.DependencyManagement$getExclusions$1.call(Unknown Source)
at io.spring.gradle.dependencymanagement.DependencyManagementContainer.getExclusions(DependencyManagementContainer.groovy:104)
at io.spring.gradle.dependencymanagement.DependencyManagementContainer$getExclusions$1.call(Unknown Source)
at io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction.findExcludedDependencies(ExclusionConfiguringAction.groovy:100)
at io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction.applyMavenExclusions(ExclusionConfiguringAction.groovy:77)
at io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction.this$2$applyMavenExclusions(ExclusionConfiguringAction.groovy)
at io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.groovy:72)
at io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.groovy)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy24.beforeResolve(Unknown Source)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.performPreResolveActions(DefaultConfiguration.java:384)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:365)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveNow(DefaultConfiguration.java:342)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:335)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:661)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:288)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext$FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:200)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:107)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:78)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext$FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:186)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:102)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:78)
at org.gradle.api.internal.changedetection.state.DefaultFileCollectionSnapshotter.visitFiles(DefaultFileCollectionSnapshotter.java:85)
at org.gradle.api.internal.changedetection.state.DefaultFileCollectionSnapshotter.snapshot(DefaultFileCollectionSnapshotter.java:54)
at org.gradle.api.internal.changedetection.rules.TaskUpToDateState.<init>(TaskUpToDateState.java:56)
at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.getStates(DefaultTaskArtifactStateRepository.java:132)
at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.isUpToDate(DefaultTaskArtifactStateRepository.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Catalog commit sha: b5bc9f7fb27870e2865ac4bd4cf4ee367cd3dfff
.
Gradle info:
./gradlew --version
------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------
Build time: 2015-12-21 21:15:04 UTC
Build number: none
Revision: 276bdcded730f53aa8c11b479986aafa58e124a6
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_181 (Oracle Corporation 25.181-b13)
OS: Linux 4.19.0-5-amd64 amd64
If you need any additional info, please ask me.
Thank you.
Create an object named "test.1" in bucket 1000
=> 200 OK
GET /catalog/buckets/1000/resources/test.1
=> 404 Not Found
DELETE /catalog/buckets/1000/resources/test.1
=> 404 Not Found
GET /catalog/buckets/1000/resources/test.1
=> 200 OK with test.1 content
It's not possible to publish workflow to catalog if the wf conatins generic info with Property Name "name".
This is due to unique constraint of key field inside the metadata table in catalog service.
Exact exception is:
org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation; UKKJ251Y7PARAV20FN5HJGAHBKG table: METADATA_KEY_VALUE
Springboot is not handling class injections properly so it's not possible to debug properly the application (for example right click the Application main class and select "Debug as Java application" on Eclipse).
A workaround is to debug the bootRun task, but then we loose the stdin/stdout streams.
When doing a GET /catalog/buckets/calendars/resources?kind=calendar , the response is not always the same. The objects in the list aren't ordered the same way even if the list contains the same objects.
I put 2 responses of this request, the 2nd was executed 20 seconds after the first one. You can see that 'every_monday' is line 137 for the 1st request and then line 98 for the 2nd.
This results in weird behavior in the portal because we don't re-order them. If you select a calendar and the calendar list refreshes, another calendar might be selected instead if the index isn't the same.
By going through the catalog portal, the default selected catalog object is not the same on the dev environment (trydev) as the one on a local environment.
For examples, It selects "Key_value" object from "basic-examples" bucket on dev however it selects "remote_visualization" by default when accessing catalog portal locally.
I notice that this is applicable to other buckets, not only "basic-examples".
Moreover, the default selection should not use the first element in the displayed list ti be selected? For example, "Native_task" for "basic examples". Why should I scroll down to check out the selected catalog object?
This should be standardized.
Description
When the https mode is enabled, it seems that the SSL certificate does not allow workflow icons to be displayed in the generated catalog.
Steps to reproduce it
How to solve it
A possible fix is to update the report generation request by adding an option to bypass SSL certificate checking like --no-check-certificate for wget or -k option for curl queries.
curl -X GET --header 'Accept: application/json' --header 'sessionID: http://trydev.activeeon.com:8080/catalog/swagger-ui.htm' 'http://trydev.activeeon.com:8080/catalog/buckets/42/resources'
Returns 200 even if bucketID 42 does not exist.
It should return 404 (Not Found)
Using the following parameters with the catalog doesn't work (relevant to any version up to the date of this issue) from a release or standalone:
spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver
spring.datasource.url=jdbc:hsqldb:hsql://localhost:9001/catalog
spring.datasource.username=SA
spring.datasource.password=spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
The same parameters work for the scheduling-api repo.
I have the following errors:
[2018-08-24 11:04:48,140 main WARN o.o.p.u.JettyStarter] Failed to start context /catalog
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfig
uration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
...
Caused by: java.sql.SQLException: General error: database alias does not exist
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver$1.run(Unknown Source)
Caused by: org.hsqldb.HsqlException: General error: database alias does not exist
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ClientConnection.<init>(Unknown Source)
... 2 more
On the other side, using MariaDB works, so the Hibernate stuff creating the database, schemas and so on seem to work properly...
The following test has be done through the catalog swagger-ui.
When submitting a workflow the several generic informations are added. Among them, the generic informations name and project_name are added.
After getting the workflow and resubmitting it, the generic informations are added once again. As a consequence, when an user get the workflow, it has two times the generic informations name and project-name instead of once.
The graphQL of Catalog can be accessed without any security.
It should be added sessionID in the header.
Step to reproduce:
Ensure that the catalog is secured
Send a request against http://localhost:8080/catalog/swagger-ui.html#!/bucket-controller/getMetadataUsingGET with a bad sessionId and an existing bucket.
It return 200 OK instead of 401Unauthorized.
The swagger api should display that the name, kind, commitMessage and contentType are mandatory for creation of object. This information should be provided from REST API description of catalog endpoints
The parameter name is commit name however when we get the workflow metadata, the required value is named commit_name_raw. commit_name also exist however it is not working as an entry parameter.
During get Archive of workflows using GET /buckets/{bucketName}/resources
in name put the 'Give a list of name separated by comma to get them in an archive',
it will be created the archive of files without extension, name of file will correspond to name of object.
This logic is done as object in bucket can be any type.
But as improvement if the object's kind equals to'workflow', we can add '.xml' extension, if doesn't already exist in name.
When relying on MySQL, the catalog fails to initialize with the following error:
Unable to execute command [create table METADATA_KEY_VALUE (ID BINARY(16) not null, KEY varchar(255) not null, LABEL varchar(255), VALUE varchar(255) not null, CATALOGOBJECTREVISION BINARY(16), primary key (ID))
The table METADATA_KEY_VALUE
contains a column KEY
which is a reserved word in MySQL.
Identical issue closed in workflow-catalog
:
ow2-proactive/workflow-catalog-old#47
Using catalog dspot branch here
I was able to run using the master dspot branch and the following command:
java -jar ~/.m2/repository/eu/stamp-project/dspot/2.0.1-SNAPSHOT/dspot-2.0.1-SNAPSHOT-jar-with-dependencies.jar --verbose --path-to-properties ./dspot.properties --automatic-builder GradleBuilder -t all --budgetizer SimpleBudgetizer
I always get 0 new tests no matter which amplifier I use. I tried them all.
======= REPORT =======
PitMutantScoreSelector:
The original test suite kills 192 mutants
The amplification results with 0 new tests
it kills 0 more mutants
My properties file:
project=.
src=src/main/java/
testSrc=src/test/java/
javaVersion=8
outputDirectory=result/
classes=build/classes/main/
testClasses=build/classes/test/
filter=org.ow2.proactive.catalog.*
Meanwhile I will rise an issue on the DSpot project.
Thanks in advance,
Description
When a catalog object name contains one of these characters "{" or "}", the filtered catalog objects are not displayed.
Steps to reproduce it
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.