Please use the Apache issue tracking system for new NetBeans issues (https://issues.apache.org/jira/projects/NETBEANS0/issues) !!
Bug 29614 - IDE locks up running certain XSL transforms
IDE locks up running certain XSL transforms
Status: VERIFIED FIXED
Product: xml
Classification: Unclassified
Component: XSL
3.x
PC Windows ME/2000
: P3 (vote)
: 3.x
Assigned To: issues@xml
issues@xml
: PERFORMANCE, UI
Depends on: 27403
Blocks:
  Show dependency treegraph
 
Reported: 2002-12-18 04:37 UTC by hlavac
Modified: 2007-09-25 01:34 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
:


Attachments
XSL stylesheet (13.93 KB, text/plain)
2002-12-18 04:38 UTC, hlavac
Details
source data to transform (188.74 KB, text/plain)
2002-12-18 04:39 UTC, hlavac
Details
partial result after crash (409 bytes, text/plain)
2002-12-18 04:41 UTC, hlavac
Details
correct result (created by built-in transform in Enterprise Architect) (5.12 KB, text/plain)
2002-12-18 04:43 UTC, hlavac
Details

Note You need to log in before you can comment on or make changes to this bug.
Description hlavac 2002-12-18 04:37:10 UTC
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?
Comment 1 hlavac 2002-12-18 04:38:14 UTC
Created attachment 8361 [details]
XSL stylesheet
Comment 2 hlavac 2002-12-18 04:39:35 UTC
Created attachment 8362 [details]
source data to transform
Comment 3 hlavac 2002-12-18 04:41:52 UTC
Created attachment 8363 [details]
partial result after crash
Comment 4 hlavac 2002-12-18 04:43:31 UTC
Created attachment 8364 [details]
correct result (created by built-in transform in Enterprise Architect)
Comment 5 _ pkuzel 2003-01-09 14:18:58 UTC
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....
Comment 6 _ pkuzel 2003-01-29 11:17:17 UTC
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.
Comment 7 _ pkuzel 2003-01-29 11:21:47 UTC
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).
Comment 8 Chris Ledantec 2003-01-29 14:01:36 UTC
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.

Comment 9 _ pkuzel 2003-02-20 14:57:07 UTC
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.
Comment 10 _ pkuzel 2003-02-20 15:00:39 UTC
RELNOTE should mention Saxon as alternative to default Xalan.
Comment 11 Patrick Keegan 2003-04-02 15:51:27 UTC
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.
Comment 12 _ pkuzel 2003-04-02 15:55:01 UTC
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>.
Comment 13 Patrick Keegan 2003-04-02 16:15:20 UTC
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."
Comment 14 _ pkuzel 2003-04-02 16:38:24 UTC
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.
Comment 15 Patrick Keegan 2003-04-03 14:38:41 UTC
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."
Comment 16 _ pkuzel 2003-04-03 14:49:27 UTC
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.  

Comment 17 Patrick Keegan 2003-04-03 15:02:31 UTC
For the module FAQs, can I point to this page?: 
http://xml.netbeans.org/user/faq.html
Comment 18 _ pkuzel 2003-04-03 15:28:40 UTC
Yes, you can, it's stable location. Even better is
http://xml.netbeans.org/.

Comment 19 Martin Schovanek 2003-10-10 06:53:31 UTC
VERIFIED 
Comment 20 Patrick Keegan 2004-03-03 23:21:56 UTC
removing RELNOTE keyword


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo