[jbosstools-issues] [JBoss JIRA] (JBIDE-19028) Prefix string too short prevents EL content assist with Seam taglib

Jiří Jansa (JIRA) issues at jboss.org
Sat Jan 10 18:13:29 EST 2015


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

Jiří Jansa updated JBIDE-19028:
-------------------------------
    Description: 
When Seam Tools is installed in Eclipse Luna SR1, Expression Language (EL) content assist in Visual Page Editor stopped working (no suggestion at all, JBoss related or not). This occurs only when xmlns:s="http://jboss.com/products/seam/taglib" tag library is used in a Facelet page.

Eclipse log shows following stacktrace on any such content assist attempt:
{quote}
org.jboss.tools.common.validation.JBTValidationException: Prefix string too short
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:187)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:205)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:200)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:254)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.validate(ReconcileStepForValidator.java:381)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.reconcileModel(ReconcileStepForValidator.java:259)
	at org.eclipse.jface.text.reconciler.AbstractReconcileStep.reconcile(AbstractReconcileStep.java:95)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy.reconcile(ValidatorStrategy.java:269)
	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.process(DocumentRegionProcessor.java:321)
	at org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor.process(StructuredRegionProcessor.java:258)
	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:691)
Caused by: java.lang.IllegalArgumentException: Prefix string too short
	at java.io.File.createTempFile(File.java:2001)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.convertUriToFile(TagLibraryManager.java:182)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getStaticTLD(TagLibraryManager.java:100)
	at org.jboss.tools.jst.web.kb.internal.StaticLibraries.getLibraries(StaticLibraries.java:44)
	at org.jboss.tools.jst.web.kb.internal.KbProject.getTagLibraries(KbProject.java:135)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getLibraries(TagLibraryManager.java:57)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillXMLNamespacesForNode(PageContextFactory.java:996)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForNode(PageContextFactory.java:698)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForChildNodes(PageContextFactory.java:687)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:431)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:236)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:199)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:184)
	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.validate(ELValidator.java:253)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:183)
	... 10 more
{quote}

Digging more deeply into the cause, Eclipse loaded a plugin specified entry for this URI as:
{quote}
Entry element:		URI
Location:			taglibs\tld\s.tld in jar file C:\DevTools\IDE\eclipse\eclipse-ee-luna-sr1-64bit\plugins\org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar
URI:   				jar:file:/C:/DevTools/IDE/eclipse/eclipse-ee-luna-sr1-64bit/plugins/org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar!/taglibs/tld/s.tld
Key type:			URI
Key:				http://jboss.com/products/seam/taglib
{quote}

Line 182 of org.jboss.tools.jst.web.kb.taglib.TagLibraryManager shows the "too short" prefix is derived from the name of the file. Here, the culprit prefix is "s" (derived from "s.tld"). Temporary file prefix must be at least 3 characters long (javadoc: http://docs.oracle.com/javase/8/docs/api/java/io/File.html#createTempFile-java.lang.String-java.lang.String-java.io.File-).

I managed to work around this issue temporarily by renaming s.tld and s.taglib.xml in org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar to seam.tld and seam.taglib.tld respectively. Then I changed the entry in JAR's plugin.xml accordingly and started eclipse with "-clean" option for the changes to take effect. Now, content assist runs expectedly.

Either renaming the plugin's TLD file or ensuring the minimum prefix length in code should do the trick.

  was:
When Seam Tools is installed in Eclipse Luna SR1, Expression Language (EL) content assist in Visual Page Editor suddenly stopped working (no suggestion at all, JBoss related or not). This occorus only when xmlns:s="http://jboss.com/products/seam/taglib" tag library is used in the Facelet page.

Eclipse log shows following stacktrace on any such content assist attempt:
{quote}
org.jboss.tools.common.validation.JBTValidationException: Prefix string too short
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:187)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:205)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:200)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:254)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.validate(ReconcileStepForValidator.java:381)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.reconcileModel(ReconcileStepForValidator.java:259)
	at org.eclipse.jface.text.reconciler.AbstractReconcileStep.reconcile(AbstractReconcileStep.java:95)
	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy.reconcile(ValidatorStrategy.java:269)
	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.process(DocumentRegionProcessor.java:321)
	at org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor.process(StructuredRegionProcessor.java:258)
	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:691)
Caused by: java.lang.IllegalArgumentException: Prefix string too short
	at java.io.File.createTempFile(File.java:2001)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.convertUriToFile(TagLibraryManager.java:182)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getStaticTLD(TagLibraryManager.java:100)
	at org.jboss.tools.jst.web.kb.internal.StaticLibraries.getLibraries(StaticLibraries.java:44)
	at org.jboss.tools.jst.web.kb.internal.KbProject.getTagLibraries(KbProject.java:135)
	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getLibraries(TagLibraryManager.java:57)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillXMLNamespacesForNode(PageContextFactory.java:996)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForNode(PageContextFactory.java:698)
	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForChildNodes(PageContextFactory.java:687)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:431)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:236)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:199)
	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:184)
	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.validate(ELValidator.java:253)
	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:183)
	... 10 more
{quote}

Digging more deeply into the cause, Eclipse loaded a plugin specified entry for this URI as:
{quote}
Entry element:		URI
Location:			taglibs\tld\s.tld in jar file C:\DevTools\IDE\eclipse\eclipse-ee-luna-sr1-64bit\plugins\org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar
URI:   				jar:file:/C:/DevTools/IDE/eclipse/eclipse-ee-luna-sr1-64bit/plugins/org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar!/taglibs/tld/s.tld
Key type:			URI
Key:				http://jboss.com/products/seam/taglib
{quote}

Line 182 of org.jboss.tools.jst.web.kb.taglib.TagLibraryManager shows the "too short" prefix is derived from the name of the file. Here, the culprit prefix is "s" (derived from "s.tld"). Temporary file prefix must be at least 3 characters long (javadoc: http://docs.oracle.com/javase/8/docs/api/java/io/File.html#createTempFile-java.lang.String-java.lang.String-java.io.File-).

I managed to work around this issue temporarily by renaming s.tld and s.taglib.xml in org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar to seam.tld and seam.taglib.tld respectively. Then I changed the entry in JAR's plugin.xml accordingly and started eclipse with "-clean" option for the changes to take effect. Now, content assist runs expectedly.

Either renaming the plugin's TLD file or ensuring the minimum prefix length in code should do the trick.



> Prefix string too short prevents EL content assist with Seam taglib
> -------------------------------------------------------------------
>
>                 Key: JBIDE-19028
>                 URL: https://issues.jboss.org/browse/JBIDE-19028
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: seam2, visual-page-editor-core
>    Affects Versions: 4.2.1.Final
>         Environment: Plugin: Seam Tools 3.6.1.Final-v20141209-0505-B79
> OS: Windows 8.1 64bit
> Eclipse: 4.4.1.M20140925-0400 (Luna SR1)
> JVM: 1.8.0_25 (64bit, Oracle)
>            Reporter: Jiří Jansa
>
> When Seam Tools is installed in Eclipse Luna SR1, Expression Language (EL) content assist in Visual Page Editor stopped working (no suggestion at all, JBoss related or not). This occurs only when xmlns:s="http://jboss.com/products/seam/taglib" tag library is used in a Facelet page.
> Eclipse log shows following stacktrace on any such content assist attempt:
> {quote}
> org.jboss.tools.common.validation.JBTValidationException: Prefix string too short
> 	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:187)
> 	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:205)
> 	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validateString(AsYouTypeValidatorManager.java:200)
> 	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:254)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.validate(ReconcileStepForValidator.java:381)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.reconcileModel(ReconcileStepForValidator.java:259)
> 	at org.eclipse.jface.text.reconciler.AbstractReconcileStep.reconcile(AbstractReconcileStep.java:95)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy.reconcile(ValidatorStrategy.java:269)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.process(DocumentRegionProcessor.java:321)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor.process(StructuredRegionProcessor.java:258)
> 	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:691)
> Caused by: java.lang.IllegalArgumentException: Prefix string too short
> 	at java.io.File.createTempFile(File.java:2001)
> 	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.convertUriToFile(TagLibraryManager.java:182)
> 	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getStaticTLD(TagLibraryManager.java:100)
> 	at org.jboss.tools.jst.web.kb.internal.StaticLibraries.getLibraries(StaticLibraries.java:44)
> 	at org.jboss.tools.jst.web.kb.internal.KbProject.getTagLibraries(KbProject.java:135)
> 	at org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getLibraries(TagLibraryManager.java:57)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.fillXMLNamespacesForNode(PageContextFactory.java:996)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForNode(PageContextFactory.java:698)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForChildNodes(PageContextFactory.java:687)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:431)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:236)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:199)
> 	at org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:184)
> 	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.validate(ELValidator.java:253)
> 	at org.jboss.tools.common.validation.AsYouTypeValidatorManager.validate(AsYouTypeValidatorManager.java:183)
> 	... 10 more
> {quote}
> Digging more deeply into the cause, Eclipse loaded a plugin specified entry for this URI as:
> {quote}
> Entry element:		URI
> Location:			taglibs\tld\s.tld in jar file C:\DevTools\IDE\eclipse\eclipse-ee-luna-sr1-64bit\plugins\org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar
> URI:   				jar:file:/C:/DevTools/IDE/eclipse/eclipse-ee-luna-sr1-64bit/plugins/org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar!/taglibs/tld/s.tld
> Key type:			URI
> Key:				http://jboss.com/products/seam/taglib
> {quote}
> Line 182 of org.jboss.tools.jst.web.kb.taglib.TagLibraryManager shows the "too short" prefix is derived from the name of the file. Here, the culprit prefix is "s" (derived from "s.tld"). Temporary file prefix must be at least 3 characters long (javadoc: http://docs.oracle.com/javase/8/docs/api/java/io/File.html#createTempFile-java.lang.String-java.lang.String-java.io.File-).
> I managed to work around this issue temporarily by renaming s.tld and s.taglib.xml in org.jboss.tools.seam.core_3.6.1.Final-v20141209-0505-B79.jar to seam.tld and seam.taglib.tld respectively. Then I changed the entry in JAR's plugin.xml accordingly and started eclipse with "-clean" option for the changes to take effect. Now, content assist runs expectedly.
> Either renaming the plugin's TLD file or ensuring the minimum prefix length in code should do the trick.



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)



More information about the jbosstools-issues mailing list