[jboss-jira] [JBoss JIRA] (DROOLS-2338) MemoryFileSystem losts contents of files all DRL scripts become "empty" if directory contains a space character

Alexander Kotikhov (JIRA) issues at jboss.org
Mon Feb 19 10:25:00 EST 2018


     [ https://issues.jboss.org/browse/DROOLS-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Kotikhov updated DROOLS-2338:
---------------------------------------
    Steps to Reproduce: 
Create directory with space character.
Put any *.drl files there.

{code:java}

    private KieContainer createKieContainer() throws IOException {
        final KieServices kieServices = KieServices.get();

        final KieFileSystem fs = kieServices.newKieFileSystem();

        // iterate all files
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        final Resource[] resources = resourcePatternResolver.getResources(baseDirectory + "*.drl");
        for (Resource res : resources) {
            logger.info("Add file to build " + res.getFilename());
            fs.write(ResourceFactory.newUrlResource(res.getURL()));
        }

        KieBuilder kieBuilder = kieServices.newKieBuilder(fs);
        kieBuilder.buildAll();
        KieModule kieModule = kieBuilder.getKieModule();

        return kieServices.newKieContainer(kieModule.getReleaseId());
    }


{code}

then try to use createKieContainer() - no rules exists.



  was:
Create directory with space character.
Put any *.drl files there.

{code:java}

    private KieContainer createKieContainer() throws IOException {
        final KieServices kieServices = KieServices.get();

        final KieFileSystem fs = kieServices.newKieFileSystem();

        // iterate all files
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        final Resource[] resources = resourcePatternResolver.getResources(baseDirectory + "*.drl");
        for (Resource res : resources) {
            logger.info("Add file to build " + res.getFilename());
            fs.write(ResourceFactory.newUrlResource(res.getURL()));
        }

        KieBuilder kieBuilder = kieServices.newKieBuilder(fs);
        kieBuilder.buildAll();
        KieModule kieModule = kieBuilder.getKieModule();

        return kieServices.newKieContainer(kieModule.getReleaseId());
    }


{code}





> MemoryFileSystem losts contents of files all DRL scripts become "empty" if directory contains a space character
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-2338
>                 URL: https://issues.jboss.org/browse/DROOLS-2338
>             Project: Drools
>          Issue Type: Bug
>          Components: core engine
>    Affects Versions: 7.4.1.Final, 7.5.0.Final, 7.6.0.Final
>         Environment: any
>            Reporter: Alexander Kotikhov
>            Assignee: Mario Fusco
>         Attachments: Снимок экрана от 2018-02-19 18-08-49.png
>
>
> If a directory where any files are placed contains spaces 
> MemoryFileSystem.getFile(String path) returns object with truncated name.
> To fix this error (in version 7.4.0) it is nessassary line 107  
> *String name = decode( path ).substring( lastSlashPos + 1 );*
>    replace with 
> *String name = decode( path.substring( lastSlashPos + 1 ) );*



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list