Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    duration SimpleType

    SmartClient Version: v13.1p_2026-02-20/Enterprise Deployment (built 2026-02-20)

    Hi, I’m trying to define a SimpleType because I need to handle a duration (e.g., of a video), and I noticed that if I use name="duration", when the SimpleType is loaded (I have PreCache enabled) it goes into an infinite loop and I get a StackOverflowError.

    Do I need to completely avoid that name, or is this something that can be resolved?

    #2
    hi Claudio - can you show your SimpleType definition and a usage?

    Comment


      #3
      Yes, of course:

      Code:
      <SimpleType name="duration" inheritsFrom="time" editorType="TimeItem">
          <validators>
              <validator type="serverCustom">
                  <serverObject lookupStyle="new" className="com.my.DurationCustomType"/>
              </validator>
          </validators>
      </SimpleType>
      actually it's not necessary to use it for a DataSourceField, and I get this after tomcat startup:

      Code:
      20-Feb-2026 16:22:18.707 GRAVE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Servlet.init() for servlet [PreCache] threw exception
          java.lang.StackOverflowError
              at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1075)
              at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
              at java.base/java.security.AccessController.doPrivileged(Native Method)
              at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
              at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
              at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
              at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
              at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
              at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
              at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
              at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
              at com.isomorphic.xml.XML.parseXML(XML.java:312)
              at com.isomorphic.xml.XML.parseXML(XML.java:152)
              at com.isomorphic.xml.XML.toDSRecords(XML.java:515)
              at com.isomorphic.xml.XML$RecordsFromXMLCache.loadObjectFromFile(XML.java:715)
              at com.isomorphic.store.ProcessedFileCache.loadAndUnwrapObjectFromFile(ProcessedFileCache.java:222)
              at com.isomorphic.store.ProcessedFileCache.getObjectFromFile(ProcessedFileCache.java:177)
              at com.isomorphic.xml.XML.loadCacheableDSRecords(XML.java:727)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:220)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:203)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:196)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:191)
              at com.isomorphic.datasource.ValidationContext.getCustomSimpleType(ValidationContext.java:504)
              at com.isomorphic.datasource.BasicDataSource.getSimpleType(BasicDataSource.java:3661)
              at com.isomorphic.datasource.BasicDataSource.getType(BasicDataSource.java:3634)
              at com.isomorphic.datasource.BasicDataSource.findElementType(BasicDataSource.java:3319)
              at com.isomorphic.datasource.BasicDataSource.elementAsRecord(BasicDataSource.java:2267)
              at com.isomorphic.datasource.BasicDataSource.toRecord(BasicDataSource.java:2011)
              at com.isomorphic.datasource.BasicDataSource.handleExtraElementValue(BasicDataSource.java:2915)
              at com.isomorphic.datasource.BasicDataSource.elementAsRecord(BasicDataSource.java:2790)
              at com.isomorphic.datasource.BasicDataSource.toRecord(BasicDataSource.java:2011)
              at com.isomorphic.datasource.BasicDataSource.handleExtraElementValue(BasicDataSource.java:2915)
              at com.isomorphic.datasource.BasicDataSource.elementAsRecord(BasicDataSource.java:2790)
              at com.isomorphic.datasource.BasicDataSource.toRecord(BasicDataSource.java:2011)
              at com.isomorphic.datasource.BasicDataSource.toRecords(BasicDataSource.java:1970)
              at com.isomorphic.datasource.DataSource.recordsFromXML(DataSource.java:2987)
              at com.isomorphic.xml.XML.toDSRecords(XML.java:529)
              at com.isomorphic.xml.XML.toDSRecords(XML.java:515)
              at com.isomorphic.xml.XML$RecordsFromXMLCache.loadObjectFromFile(XML.java:715)
              at com.isomorphic.store.ProcessedFileCache.loadAndUnwrapObjectFromFile(ProcessedFileCache.java:222)
              at com.isomorphic.store.ProcessedFileCache.getObjectFromFile(ProcessedFileCache.java:177)
              at com.isomorphic.xml.XML.loadCacheableDSRecords(XML.java:727)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:220)
              at com.isomorphic.datasource.DataSource.loadDS(DataSource.java:617)
              at com.isomorphic.datasource.DataSource.forName(DataSource.java:577)
              at com.isomorphic.datasource.PoolableDataSourceFactory.makeUnpooledObject(PoolableDataSourceFactory.java:128)
              at com.isomorphic.datasource.PoolableDataSourceFactory.makeObject(PoolableDataSourceFactory.java:154)
              at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
              at com.isomorphic.pool.PoolManager.borrowObject(PoolManager.java:90)
              at com.isomorphic.datasource.DataSourceManager._getDataSource(DataSourceManager.java:214)
              at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:163)
              at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:453)
              at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:415)
              at com.isomorphic.datasource.BasicDataSource.findDataSource(BasicDataSource.java:3739)
              at com.isomorphic.datasource.BasicDataSource.getType(BasicDataSource.java:3630)
              at com.isomorphic.datasource.BasicDataSource.getFieldType(BasicDataSource.java:3359)
              at com.isomorphic.datasource.BasicDataSource.validateFieldValue(BasicDataSource.java:3004)
              at com.isomorphic.datasource.BasicDataSource.validateFieldValue(BasicDataSource.java:2988)
              at com.isomorphic.datasource.BasicDataSource.elementAsRecord(BasicDataSource.java:2662)
              at com.isomorphic.datasource.BasicDataSource.toRecord(BasicDataSource.java:2011)
              at com.isomorphic.datasource.BasicDataSource.toRecords(BasicDataSource.java:1970)
              at com.isomorphic.datasource.DataSource.recordsFromXML(DataSource.java:2987)
              at com.isomorphic.xml.XML.toDSRecords(XML.java:529)
              at com.isomorphic.xml.XML.toDSRecords(XML.java:515)
              at com.isomorphic.xml.XML$RecordsFromXMLCache.loadObjectFromFile(XML.java:715)
              at com.isomorphic.store.ProcessedFileCache.loadAndUnwrapObjectFromFile(ProcessedFileCache.java:222)
              at com.isomorphic.store.ProcessedFileCache.getObjectFromFile(ProcessedFileCache.java:177)
              at com.isomorphic.xml.XML.loadCacheableDSRecords(XML.java:727)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:220)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:203)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:196)
              at com.isomorphic.store.DataStructCache.loadInstance(DataStructCache.java:191)
              at com.isomorphic.datasource.ValidationContext.getCustomSimpleType(ValidationContext.java:504)
      ....

      Comment


        #4
        Thanks - it looks like we had two caches not playing well together - we've made a fix for it, and it should be in tomorrow's builds.

        Comment

        Working...
        X