Changeset 7021


Ignore:
Timestamp:
06/20/16 14:33:02 (8 years ago)
Author:
Menzo Windhouwer
Message:

M cmdi-validator-core/src/main/java/eu/clarin/cmdi/validator/CMDISchemaLoader.java

  • cache file could be read when it was not fully downloaded yet
Location:
CMDIValidator/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CMDIValidator/trunk/cmdi-validator-core/src/main/java/eu/clarin/cmdi/validator/CMDISchemaLoader.java

    r7019 r7021  
    154154                        cacheDataFile.delete();
    155155                    } else {
    156                         logger.trace("-> from file cache");
    157                         return new FileInputStream(cacheDataFile);
     156                        synchronized (pending) {
     157                            if (!pending.contains(schemaLocation)) {
     158                                logger.trace("-> '{}' from file cache", schemaLocation);
     159                                return new FileInputStream(cacheDataFile);
     160                            }
     161                        }
    158162                    }
    159163                }
     
    163167                        doDownload = true;
    164168                        pending.add(schemaLocation);
     169                        logger.trace("pending + '{}'", schemaLocation);
    165170                    }
    166171                } // synchronized (pending)
     
    172177                try {
    173178                    download(cacheDataFile, schemaLocation);
     179                    logger.trace("downloaded schema from '{}' succesfully", schemaLocation);
    174180                    return new FileInputStream(cacheDataFile);
    175181                } catch (IOException e) {
     
    189195                        }
    190196                        synchronized (pending) {
     197                            logger.trace("pending - '{}'", schemaLocation);
    191198                            pending.remove(schemaLocation);
    192199                            synchronized (waiter) {
     200                                logger.trace("notify all waiters for downloading schema from '{}'", schemaLocation);
    193201                                waiter.notifyAll();
    194202                            } // synchronized (waiter)
     
    199207                try {
    200208                    synchronized (waiter) {
     209                        logger.trace("waiting for download schema from '{}'", schemaLocation);
    201210                        waiter.wait();
    202211                    } // synchronized (waiter)
  • CMDIValidator/trunk/cmdi-validator-tool/pom.xml

    r7019 r7021  
    6767                <artifactId>commons-io</artifactId>
    6868                <version>2.4</version>
     69        </dependency>
     70        <dependency>
     71            <groupId>net.java.truevfs</groupId>
     72            <artifactId>truevfs-access</artifactId>
     73            <version>0.11.0</version>
     74            <type>jar</type>
    6975        </dependency>
    7076    </dependencies>
Note: See TracChangeset for help on using the changeset viewer.