This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Running attached (admittably nasty ;) XSL transform upon provided data locks up IDE totally. This stylesheet creates SQL from XMI UML model. It uses recursion to arrange tables to create/drop in correct order for referential integrity constraints. I'm able to run this transform fine in Architag XRay XML editor. Similar lockup occured to me before when i had infinite recursion by mistake, but now it should be OK?
Created attachment 8361 [details] XSL stylesheet
Created attachment 8362 [details] source data to transform
Created attachment 8363 [details] partial result after crash
Created attachment 8364 [details] correct result (created by built-in transform in Enterprise Architect)
It looks like bundled Xalan XSLT processor problem. However NetBeans should not execute it from GUI thread. org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638) org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088) org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066) org.netbeans.modules.xsl.utils.TransformUtil.transform(TransformUtil.java:242) org.netbeans.modules.xsl.transform.TransformPerformer$AbstractPerformer.fileOutput(TransformPerformer.java:285) org.netbeans.modules.xsl.transform.TransformPerformer$AbstractPerformer.actionPerformed(TransformPerformer.java:337) org.netbeans.core.NbPresenter$ButtonListener.actionPerformed(NbPresenter.java:938) TransformUtil must post transformation to another thread and provide feedback UI (a progress bar). If time permits someone should also investigate on Saxon and possibly write HOWTO-document about pluging it in instead of default Xalan. 5 minutes passed and transformation is still running on my PIII@800....
I tried Saxon 6.5.2 and it performs well. http://prdownloads.sourceforge.net/saxon/saxon6_5_2.zip?use_mirror=cesnet Simply extract saxon.zip and put saxon.jar into your jre/lib/ext to try it.
Chris do you remember latest progress feedback UI recommendation? Issue #27403 promised to address it but I'm not sure about its status. (I do not want to code/design my private UI if there will be shared one).
progress feedback work has been on hold for a while. i'm not sure where it fits into future plans either. sorry, not much of an update. if all you are looking for is a mouse cursor change some work has gone into providing a way to do that. talk to David Simonek for more details on how to use it.
XSLT is processed in background thread. Until there will be a UI to cancel it you must wait... or close whole IDE. XSLT Transform action is disabled while a background transformation runs to avoid JVM overload. Possibly RELNOTE candidate.
RELNOTE should mention Saxon as alternative to default Xalan.
Proposed relnote (Petr, could you please verify?): Sometimes it takes a long time for the IDE to process XSL transformations. To prevent JVM overload, the XSLT Transform command is disabled when another transformation is being done. Note: XSL transformations might finish more quickly if you use an alternate to the default XALAN library. One such library, Saxon, is available at http://prdownloads.sourceforge.net/saxon/. After unpacking the saxon.zip file, place saxon.jar in your jre/lib/ext directory.
Nice. However I would not inline How to plug Saxon replacing it by a link to WWW <http://xml.netbeans.org/xsl/user/faq.html>.
Good point. However, I'm hesitant to link to docs that might move. So perhaps I'll just say, "Once you download Saxon, follow its standard installation instructions to get it working with your JRE."
My point is that I would not hardcode SAXON info into the readme. SAXON is not holy grail XSLT processor. It may be better for some kind of transormations, worse for others. There are tens of XSLT processor implementations.
Actually, I'd prefer to not even specifically identify a third-party processor. I'd rather focus on the possibility of plugging in different parsers and *maybe* give Saxon as an example. How about?: "Description: Sometimes it takes a long time for the IDE to process XSL transformations. To prevent JVM overload, the XSLT Transform command is disabled when another transformation is being done. Note: Many different XSLT parsers are available. By default, the IDE uses the XALAN parser, but you may find that another parser performs better for the transformations you regularly perform. If you want to use a different parser, place that parser's JAR file in your jre/lib/ext directory."
Note: Many different XSLT parsers are available. By default, the IDE uses the XALAN parser, but you may find that another parser performs better for the transformations you regularly perform. If you want to use a different parser consult JAXP 1.1 specification or module FAQs.
For the module FAQs, can I point to this page?: http://xml.netbeans.org/user/faq.html
Yes, you can, it's stable location. Even better is http://xml.netbeans.org/.
VERIFIED
removing RELNOTE keyword