codbex / codbex-kronos

SAP HANA XS Classic and ABAP Compatibility Platform
https://codbex.com
Eclipse Public License 2.0
5 stars 3 forks source link

[HDBDD] Duplicate Name #368

Open ThuF opened 1 year ago

ThuF commented 1 year ago

Processing the following HDBDD file with view name that's duplicating the context name results into the error bellow:

Test.hdbdd

namespace com.codbex.hdbdd;

@Schema: 'TEST_SCHEMA'
context Test {

    view Test as select from status {
        id,
    testTime
    };
};

Processing exception:

[ERROR] [pool-17984-thread-1] c.c.k.h.d.f.HDBCoreSynchronizationFacade - Synchronized artifact with path /com/codbex/hdbdd/test.hdbdd is not valid. com.codbex.kronos.parser.hdbdd.exception.CDSRuntimeException: Failed to parse file: /com/codbex/hdbdd/test.hdbdd. Error at line: 7  - Duplicate name for: Test
com.codbex.kronos.hdb.ds.api.DataStructuresException: com.codbex.kronos.parser.hdbdd.exception.CDSRuntimeException: Failed to parse file: /com/codbex/hdbdd/test.hdbdd. Error at line: 7  - Duplicate name for: Test
    at com.codbex.kronos.hdb.ds.parser.hdbdd.HDBDDDataStructureParser.parse(HDBDDDataStructureParser.java:129) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.service.parser.CoreParserService.parseDataStructure(CoreParserService.java:46) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.facade.HDBCoreSynchronizationFacade.parseDataStructureModel(HDBCoreSynchronizationFacade.java:151) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.facade.HDBCoreSynchronizationFacade.parseDataStructureModel(HDBCoreSynchronizationFacade.java:174) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.facade.HDBCoreSynchronizationFacade.handleResourceSynchronization(HDBCoreSynchronizationFacade.java:187) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.synchronizer.DataStructuresSynchronizer.synchronizeResource(DataStructuresSynchronizer.java:533) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:138) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeCollection(AbstractSynchronizer.java:145) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizer.synchronizeRegistry(AbstractSynchronizer.java:122) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at com.codbex.kronos.hdb.ds.synchronizer.DataStructuresSynchronizer.synchronizeRegistry(DataStructuresSynchronizer.java:512) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.synchronizer.DataStructuresSynchronizer.synchronize(DataStructuresSynchronizer.java:300) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at org.eclipse.dirigible.core.scheduler.synchronizer.OrderedSynchronizer.synchronize(OrderedSynchronizer.java:81) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.core.scheduler.api.AbstractSynchronizerJob$1.run(AbstractSynchronizerJob.java:53) ~[dirigible-core-scheduler-6.3.16.2.jar:na]
    at org.eclipse.dirigible.commons.timeout.TimeLimited$1.call(TimeLimited.java:52) ~[dirigible-commons-timeout-6.3.16.2.jar:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: com.codbex.kronos.parser.hdbdd.exception.CDSRuntimeException: Failed to parse file: /com/codbex/hdbdd/test.hdbdd. Error at line: 7  - Duplicate name for: Test
    at com.codbex.kronos.hdb.ds.parser.hdbdd.HDBDDDataStructureParser.parseHDBDD(HDBDDDataStructureParser.java:194) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    at com.codbex.kronos.hdb.ds.parser.hdbdd.HDBDDDataStructureParser.parse(HDBDDDataStructureParser.java:124) ~[kronos-modules-engines-hdb-0.2.0-SNAPSHOT.jar:na]
    ... 22 common frames omitted
ThuF commented 1 year ago

Workaround:

Create Test.Test.hdbview file in the same location (following the <contextName>.<viewName>.hdbview pattern):

schema="TEST_SCHEMA";
public=false;
query="select \"id\", \"testTime\" from \"com.codbex...::status\"";