Bug 1145682 - jcr2vfs migration tool fails to migrate some asset types due to classpath order issues
Summary: jcr2vfs migration tool fails to migrate some asset types due to classpath ord...
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: Migration Tool
Version: 6.1.0
Hardware: Unspecified
OS: Unspecified
high
urgent
Target Milestone: ER4
: 6.1.0
Assignee: Jan
QA Contact: Tibor Zimanyi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-09-23 13:44 UTC by Petr Široký
Modified: 2020-03-27 20:05 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-03-27 20:05:58 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1182629 0 high CLOSED Migration tool .bat script needs to be adapted to new .sh script version 2021-02-22 00:41:40 UTC

Internal Links: 1182629

Description Petr Široký 2014-09-23 13:44:33 UTC
Description of problem:
The jcr2vfs migration tool is broken. It can't migrate certain asset types, because of classpath order issues. There are both Drools 5.x and Drools 6.x on the CP at the same time, which causes serious issues during runtime. See for example following exception thrown by the tool:

**********************************************************************
java.lang.NoSuchMethodError: org.drools.core.util.IoUtils.readBytesFromInputStream(Ljava/io/InputStream;)[B
	at org.drools.compiler.kie.builder.impl.KieFileSystemImpl.write(KieFileSystemImpl.java:47)
	at org.guvnor.common.services.builder.Builder.visitPaths(Builder.java:551)
	at org.guvnor.common.services.builder.Builder.<init>(Builder.java:118)
	at org.guvnor.common.services.builder.LRUBuilderCache.assertBuilder(LRUBuilderCache.java:88)
	at org.guvnor.common.services.builder.LRUBuilderCache$Proxy$_$$_WeldClientProxy.assertBuilder(LRUBuilderCache$Proxy$_$$_WeldClientProxy.java)
	at org.kie.workbench.common.screens.datamodeller.backend.server.DataModelerServiceImpl.getProjectClassLoader(DataModelerServiceImpl.java:475)
	at org.kie.workbench.common.screens.datamodeller.backend.server.DataModelerServiceImpl.generateModel(DataModelerServiceImpl.java:281)
	at org.kie.workbench.common.screens.datamodeller.backend.server.DataModelerServiceImpl.saveModel(DataModelerServiceImpl.java:238)
	at org.kie.workbench.common.screens.datamodeller.backend.server.DataModelerServiceImpl.saveModel(DataModelerServiceImpl.java:217)
	at org.kie.workbench.common.screens.datamodeller.backend.server.DataModelerServiceImpl$Proxy$_$$_WeldClientProxy.saveModel(DataModelerServiceImpl$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.migrater.asset.FactModelsMigrater.migrate(FactModelsMigrater.java:120)
	at org.drools.workbench.jcr2vfsmigration.migrater.asset.FactModelsMigrater$Proxy$_$$_WeldClientProxy.migrate(FactModelsMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater.migrate(AssetMigrater.java:190)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater.migrateAll(AssetMigrater.java:158)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater$Proxy$_$$_WeldClientProxy.migrateAll(AssetMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrater.migrateAll(Jcr2VfsMigrater.java:91)Migration ended with warnings. Written into outputVfsRepository ({/mnt/hudson_workspace/workspace/brms-6.1-jcr2vfs-migration-single/jcr2vfs-migration-tests-resources/mortgages-with-custom-updates-repo/migrated-vfs-repo}).
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrater$Proxy$_$$_WeldClientProxy.migrateAll(Jcr2VfsMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp.migrate(Jcr2VfsMigrationApp.java:64)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp.run(Jcr2VfsMigrationApp.java:52)
**********************************************************************


java.lang.ClassCastException: org.drools.core.base.accumulators.BigDecimalSumAccumulateFunction cannot be cast to org.drools.runtime.rule.AccumulateFunction
	at org.drools.compiler.PackageBuilderConfiguration.loadAccumulateFunction(PackageBuilderConfiguration.java:530)
	at org.drools.compiler.PackageBuilderConfiguration.buildAccumulateFunctionsMap(PackageBuilderConfiguration.java:479)
	at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:194)
	at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:165)
	at org.drools.guvnor.server.builder.BRMSPackageBuilder.getPackageBuilderConfiguration(BRMSPackageBuilder.java:134)
	at org.drools.guvnor.server.builder.BRMSPackageBuilder.<init>(BRMSPackageBuilder.java:67)
	at org.drools.workbench.jcr2vfsmigration.migrater.asset.GuidedEditorMigrater.migrate(GuidedEditorMigrater.java:92)
	at org.drools.workbench.jcr2vfsmigration.migrater.asset.GuidedEditorMigrater$Proxy$_$$_WeldClientProxy.migrate(GuidedEditorMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater.migrate(AssetMigrater.java:192)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater.migrateAll(AssetMigrater.java:158)
	at org.drools.workbench.jcr2vfsmigration.migrater.AssetMigrater$Proxy$_$$_WeldClientProxy.migrateAll(AssetMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrater.migrateAll(Jcr2VfsMigrater.java:91)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrater$Proxy$_$$_WeldClientProxy.migrateAll(Jcr2VfsMigrater$Proxy$_$$_WeldClientProxy.java)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp.migrate(Jcr2VfsMigrationApp.java:64)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp.run(Jcr2VfsMigrationApp.java:52)
	at org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp.main(Jcr2VfsMigrationApp.java:37)
**********************************************************************


Version-Release number of selected component (if applicable):
6.1.0.DR3


How reproducible:
Always


Steps to Reproduce:
1. Simply run the tool against Guvnor 5.x repo that has DRL or BRL assets.


Actual results:
Exceptions during the migration (see above).


Expected results:
The migration should be successful.

Comment 1 Jan 2015-01-08 16:15:52 UTC
The tool has been refactored, so that now the export phase from JCR is completely separated from the import into VFS phase.

Known remaining issue: in the import phase some stack traces appear in the console output, but they do not seem to affect the correct outcome of the migration, and therefore their cause has not been investigated upon yet.

The solution has been committed and pushed both to master as well as 6.2.x

Comment 2 Petr Široký 2015-01-24 16:03:24 UTC
Verified fixed in 6.1.0.ER4. The migration tool has been split into two modules (jcr export + vfs import) to avoid the classpath order issues.


Note You need to log in before you can comment on or make changes to this bug.