<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>NetBeans 6.0 UML Preview (M9) - Release Notes for the Mac OS Platform</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="NetBeans 6.0 UML  Preview (M9)- Release Notes for the Mac OS Platform">

</head>
<body onLoad="loginfocus()" class="composite">
<div id="contentLeft">
<!-- Begin Content Area -->
<a name="top"></a>
<h1>NetBeans 6.0 UML Preview (M9) - Release Notes for the Mac OS Platform</h1>
<p>Last Updated: May 2007</p>
<p>The Macintosh OS platform is currently not a supported platform for NetBeans 6.0 UML Preview release. This release notes document provides  important information  about the known issues and workarounds in using NetBeans UML on a Macintosh OS X platform. Please see the UML section of the <a href="relnotes.html#known_issues-uml">NetBeans IDE 6.0  Preview (M9) Release Notes</a> to get more information about the known UML issues and workarounds for the supported platforms.</p>
<p><b>Contents</b></p>
<ul>
<li><a href="#sysreqs">System Requirements</a></li>
<li><a href="#known_issues">Known Issues and Workarounds</a> </li>
</ul>
<br>
<!-- ======================================================================================== -->
<h2><a name="sysreqs"></a>System Requirements</h2>
<p>NetBeans 6.0 UML Preview is supported on all systems that meet the requirements specified in the System Requirements section of the <a href="https://netbeans.org/community/releases/55/relnotes.html#system_requirements">NetBeans IDE  Release Notes</a>, with the exception of the Macintosh OS. UML is currently not supported on the Macintosh OS X platform.</p>
<!-- ======================================================================================== -->
<br>
<h2><a name="known_issues"></a>Known Issues and Workarounds </h2>
<p>The unresolved issues  described below occur when using UML in the IDE running on Macintosh OS X platform. </p>
<blockquote>
  <ul>
<li><b><span style="color: #045491;"><a name="scrollbarissue"></a>On Mac OS with JDK 1.5, the UML performance becomes slow when scrollbars appear in the Diagram editor window.</span></b>
<!-- 78346 https://netbeans.org/bugzilla/show_bug.cgi?id=78346 P1 MAC: UML performance issue on MacOS when scroll bars exist for the diagram window -->
<blockquote>
<p><strong>Description: </strong></p>
<blockquote>
<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=78346">Issue #78346</a>: The UML performance slows down on a Mac OS platform running JDK 1.5 when the scrollbars appear in the Diagram editor window as a result of manually moving diagram elements. After the scrollbars appear, any action taken on the diagram takes a very long time to complete. </blockquote>
<p><strong>Workaround: </strong></p>
<blockquote>Click one of the layout buttons on the Diagram editor toolbar to re-layout the diagram. If you are working with a big diagram, add the <tt>
  <br>
  -J-Dapple.awt.graphics.UseQuartz=false</tt> command-line switch to the <code>netbeans_default_options</code> statement in the <code>
  <i>nb6.0-installation-directory</i>/Contents/Resources/NetBeans/etc/</code>netbeans.conf</code> file. Restart the IDE. <br>
  <br>
  <b>Note:</b> The use of the command-line switch mentioned above may adversely affect the behavior of the NetBeans 6.0 IDE Preview and other modules. These behaviors are described in the following issues:
  <ul>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=73623">Issue #73623:</a> The file explorer  randomly updates and scrambles  text to be on top of other text in the file tree. A forced refresh command restores the appearance of the file tree, but the scrambling happens often.</li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=83271">Issue #83271</a>: After moving a palette from one location to another, some areas of the screen do not appear to get updated properly and information is overlaid.</li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88271">Issue #88271</a>: Turning off Quartz  rendering does cause other issues, such as rendering problems in the help window.</li>
  </ul>
  If you experience any of the above issues or other issues while using the <tt>-J-Dapple.awt.graphics.UseQuartz</tt> switch, remove the switch from the <tt>netbeans.conf</tt> file and restart the IDE. </blockquote>
</blockquote>
</li>
<li><b><span style="color: #045491;"> Starting the IDE  with JDK 1.6 in a Mac OS X  platform affects the UML performance.</span></b>
<!--82943 https://netbeans.org/bugzilla/show_bug.cgi?id=82943 P1 MAC ui performance on MacOS system is very slow when jdk 1.6 is used to start ide -->
<blockquote>
<p><strong>Description:</strong></p>
<blockquote>
<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=82943">Issue #82943</a>:  The UML performance issue described in the <a href="#scrollbarissue">previous section</a> is fixed when starting the IDE with JDK 1.6 on a Mac OS X in an Intel platform. However, UML's performance is highly degraded when starting the IDE with JDK 1.6 on a Mac OS X in a Power PC platform. <br>
<br>
There are also other problems that occur in the IDE when it is started using JDK 1.6 (<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=86850">see Issue #86850</a>). The IDE has general refreshing problems that occur when using JDK 1.6. </blockquote>
<p><strong>Workaround: </strong>Use JDK 1.5 when starting the IDE.</p>
</blockquote>
</li>
<li><b><span style="color: #045491;">Creating a class diagram from selected elements return an exception on a Mac OS using JDK 1.6.</span></b>
<!-- 82831 https://netbeans.org/bugzilla/show_bug.cgi?id=82831 P1 MAC creating class diagram from selected elements returns StackOverflowError exception -->
<blockquote><strong>Description:</strong>
<blockquote>
<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=82831">Issue #82831</a>: On Mac OS platform, creating a class diagram from selected elements returns a StackOverflowError exception. This is a known Macintosh bug (ID #4647508) </blockquote>
<p><strong>Workaround: </strong>Use JDK 1.5 when starting the IDE.</p>
</blockquote>
</li>
</ul>
</blockquote>
<br>
<p>NetBeans 6.0 UML Preview lets you explore and evaluate the UML functionality in the IDE. We encourage you to get involved and give us feedback by logging any issues you encounter in the Issue Tracking system at <a href="https://netbeans.org/community/issues.html">https://netbeans.org/community/issues.html</a>.</p>

<p align="center"><a href="#top">top</a></p>
</div>
</body>
</html>
