<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2009 Sun Microsystems, Inc. 
  All Rights Reserved.
-->
<html>
<head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <title>NetBeans IDE 6.5.1 Release Notes</title>
   <meta name="description" content="NetBeans IDE 6.5.1
.1
 Release Notes: Introduction, Compatibility, Known Issues, Documentation">
   <link rel="stylesheet" type="text/css" href="../../../../netbeans.css">
</head>   
<body>
   <a name="top"></a>
   <h1>NetBeans IDE 6.5.1 Release Notes</h1>
<div class="articledate" style="margin-left: 0px;">Last updated:  <!-- #BeginDate format:Am1 -->August 9, 2012<!-- #EndDate -->      </div>
   <p>NetBeans IDE is a modular, standards-based integrated development environment (IDE),
      written in the Java programming language. The NetBeans project consists of an <a href="../../../../features/index.html">open
      source IDE</a> written in the Java programming language and an <a href="../../../../features/platform/index.html">application
   platform</a>, which can be used as a generic framework to build any kind of application. For information about how to install the software on your system, please see the <a href="install.html">NetBeans IDE 6.5.1 Installation Instructions</a>. </p>
   
<h2 style="color:#0E1B55">Contents</h2>
   <ul>
      <li><a href="#65">What's New in 6.5.1
</a></li>
      <li><a href="#supported_technologies">Supported Technologies</a><span class="articledate">        
      </span></li>
      <li><a href="#system_requirements">System Requirements</a></li>
      <li><a href="#compatibility">Compatibility</a></li>
      <li><a href="#javafx">JavaFX SDK</a></li>
      <li><a href="#uml-plugin">UML Module Availability</a></li>
      <li><a href="#sql-db">SQL and Databases</a></li>
      <li><a href="#known_issues-installer">Known Issues: Installer</a></li>
      <li><a href="#known_issues-core">Known Issues: Core IDE</a></li>
      <li><a href="#known_issues-web-java">Known Issues: Web and Java EE</a></li>
      <!--li><a href="#known_issues-websvc">Known Issues: Web Services</a></li-->
      <li><a href="#known_issues-mobility">Known Issues: Java ME</a></li>
      <!--li><a href="#known_issues-uml">Known Issues: UML</a></li-->
      <li><a href="#known_issues-soa">Known Issues: SOA</a></li>
      <!--li><a href="#known_issues-ruby">Known Issues: Ruby </a></li-->
      <li><a href="#known_issues-cnd">Known Issues: C/C++</a></li>
      <!-- <li><a href="#documentation">Documentation</a></li>-->
      <li><a href="#more_info">More Information</a></li>
   </ul>
<a name="65"></a>
   <h2>What's New in 6.5.1
</h2>
   <p>NetBeans IDE 6.5.1 is a minor update to NetBeans IDE 6.5 and includes the following changes:</p>
   <ul>
        <li>GlassFish V2 UR2 is replaced with Glassfish V2.1 </li>
        <li>Integration of the December 2008 and January 2009 patches detailed on the <a href="http://wiki.netbeans.org/NetBeans6.5PatchesInfo">NetBeans 6.5 Patches Info</a> page.</li>
        <li>The integration of <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=154624">bug fixes for JDK6 Update 12</a> and other issues.</li>
   </ul>
<p>For more about this release, see the <a href="index.html">NetBeans IDE 6.5.1 Release Information</a> page.</p>
   
<a name="supported_technologies"></a>
   <h2>Supported Technologies</h2>
   <br>
   <p>NetBeans IDE 6.5.1
 supports the following technologies and has been tested with the following application servers.
      If you plan to use versions other than those explicitly listed, please note that you may encounter unpredictable IDE
   behavior as a result of the technologies being external interfaces which the project team has little or no control over. </p>
   <br>
   
   <h5>Supported technologies:</h5>
   <table class="full-width">
     <tr>
       <td style="width:45%" class="valign-top">
      <ul>
         <li>Java EE 5 and J2EE 1.4</li>
         <li>JavaFX 1.1.1</li>
         <li>Struts 1.2.9</li>
         <li>Spring 2.5</li>
         <li>Hibernate 3.2.5</li>
         <li>Java API for RESTful Web Services (JAX-RS) 1.0</li>
         <li>Java API for XML-based RPC (JAX-RPC) 1.6</li>
      </ul>

       </td>
       <td>
      <ul>
         <li>PHP 5.2</li>
         <li>Ruby 1.8</li>
         <li>JRuby 1.1.4</li>
         <li>Rails 2.1</li>
         <li>Groovy 1.5</li>
         <li>Grails 1.0</li>
         <li>VCS
         <ul>
           <li>CVS: 1.11.x, 1.12.x</li>
           <li>Subversion: 1.3.x, 1.4.x, 1.5.x</li>
           <li>Mercurial: 1.0.x</li>
           <li>ClearCase V7.0</li>
         </ul>
         </li>
      </ul>
       </td>
     </tr>
   </table>
   
   <br style="clear:both;" />
   <br>
   <h5>Tested application servers:</h5>
   
   <div style="float:left; width:48%; font-size:11px; margin:0px auto; padding:10px; background-color:#ffffff; border:0px solid #e3e3e3;">
      <ul>
         <li>Sun Java System Application Server 9.0 (GlassFish V1)</li>
         <li>Sun Java System Application Server 9.1 (GlassFish V2.1)</li>
         <li>Sun GlassFish Enterprise Server v3 Prelude</li>
         <li>Sun Java System Application Server PE 8.2</li>
         <li>Tomcat 5.5</li>
         <li>Tomcat 6.0.18</li>
      </ul>
</div>
<div style="width:48%; font-size:11px; margin:0px auto; background-color:#ffffff; padding:10px; border:0px solid #e3e3e3;">
      <ul>
         <li>JBoss 4.0.4</li>
         <li>WebSphere 6.0</li>
         <li>Websphere 6.1</li>
         <li>WebLogic 9.2</li>
         <li>WebLogic 10</li>
      </ul>
</div>
   <br style="clear:both;" />
   <br>

<p class="notes"><b>Note:</b> If you are using the GlassFish application server, it is recommended that
you run GlassFish V2.1 in order to work with NetBeans IDE 6.5.1</p>
   
   <a name="system_requirements"></a>
   <h2>System Requirements</h2>
   <p>NetBeans IDE runs on operating systems that support the Java VM (Virtual Machine) and has been tested on the platforms listed below. </p>
   
   <p class="notes"><b>Note:</b> The IDE's minimum screen resolution is 1024x768 pixels.</p>
   
   <br style="clear:both;" />
   
   <a name="req_os"></a>
   <!--            <h5 style="border-bottom:0">Supported Hardware Configurations</h5>-->
   <h5 style="border-bottom:0">Supported Operating Systems</h5>
   <br>
   
   <div style="width:98%; border:0px solid #e3e3e3;">
      
      <div style="float:left; width:45%; height:auto; font-size:11px; margin:0px; padding-top:0px; padding-left:10px; padding-right:5px; padding-bottom:10px; border:0px solid #e3e3e3;">
         <blockquote>
           <h3 style="border-bottom:0; margin-bottom:10px">Minimum Hardware Configurations</h3>
           <ul>
             <li><b>Microsoft Windows XP Professional SP3:</b>
               <ul>
                 <li><b>Processor: </b>800MHz Intel Pentium III or equivalent</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>750 MB of free disk space </li>
               </ul>
             </li>
           </ul>
           <blockquote>
             <p><br>
             </p>
           </blockquote>
           <ul>
             <li><b>Microsoft Windows Vista:</b>
               <ul>
                 <li><b>Processor: </b>800MHz Intel Pentium III or equivalent</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>750 MB of free disk space </li>
               </ul>
             </li>
           </ul>
           <blockquote>
             <p><br>
             </p>
           </blockquote>
           <ul>
             <li><b>Ubuntu 8.x:</b>
               <ul>
                 <li><b>Processor: </b>800MHz Intel Pentium III or equivalent</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>650 MB of free disk space</li>
               </ul>
             </li>
           </ul>
           <blockquote>
             <p><br>
             </p>
           </blockquote>
           <ul>
             <li><b>Solaris OS version 10 (SPARC):</b>
               <ul>
                 <li><b>Processor: </b> UltraSPARC II 450 MHz</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>650 MB of free disk space</li>
               </ul>
             </li>
           </ul>
           <blockquote>
             <p><br>
             </p>
           </blockquote>
           <ul>
             <li><b>Solaris OS version 10 (x86/x64 Platform Edition):</b>
               <ul>
                 <li><b>Processor: </b>AMD Opteron 1200 Series 1.8 GHz</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>650 MB of free disk space</li>
               </ul>
               <p><br>
               </p>
             </li>
             <li><b>Macintosh OS X 10.5 Intel:</b>
               <ul>
                 <li><b>Processor: </b>Dual-Core Intel</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>650 MB of free disk space </li>
               </ul>
             </li>
           </ul>
           <blockquote>
             <p><br>
             </p>
           </blockquote>
           <ul>
             <li><b>Macintosh OS X 10.5 PPC:</b>
               <ul>
                 <li><b>Processor: </b>PowerPC G4</li>
                 <li><b>Memory: </b>512 MB</li>
                 <li><b>Disk space: </b>650 MB of free disk space </li>
               </ul>
               <p>For more information, see <a href="../../../../kb/articles/mac.html">Using NetBeans on Mac OS X</a>.</p>
             </li>
           </ul>
         </blockquote>
     </div>
      
   <div style="float:right; width:45%; height:auto; font-size:11px; margin:0px; padding-top:0px; padding-left:5px; padding-right:10px; padding-bottom:10px; background-color:#f9f9f9; border:1px solid #e3e3e3;">
         <h3 style="border-bottom:0; margin-bottom:10px">Recommended Hardware Configurations</h3>
         <ul>
            <li><b>Microsoft Windows XP Professional SP3:</b>
               <ul>
                  
                  <li><b>Processor: </b>2.6 GHz Intel Pentium IV or equivalent</li>
                  <li><b>Memory: </b>1 GB</li>
                  <li><b>Disk space: </b>1 GB of free disk space </li>
               </ul>
            </li>
            <br>
            <li><b>Microsoft Windows Vista:</b>
               <ul>
                  <li><b>Processor: </b>2.6 GHz Intel Pentium IV or equivalent</li>
                  <li><b>Memory: </b>1 GB</li>
                  <li><b>Disk space: </b>1 GB of free disk space </li>
               </ul>
            </li>
            <br>
            <li><b>Ubuntu 8.x:</b>
               <ul>
                  <li><b>Processor: </b>2.6 GHz Intel Pentium IV or equivalent</li>
                  <li><b>Memory: </b>1 GB</li>
                  <li><b>Disk space: </b>850 MB of free disk space</li>
               </ul>
            </li>
           <br>
            <li><b>Solaris OS version 10 (SPARC):</b>
              <ul>
                <li><b>Processor: </b>UltraSPARC IIIi 1 GHz</li>
                <li><b>Memory: </b>1 GB</li>
                <li><b>Disk space: </b>850 MB of free disk space</li>
              </ul>
            </li>
            <br>
            <li><b>Solaris OS version 10 (x86/x64 platform edition):</b>
              <ul>
                <li><b>Processor: </b>AMD Opteron 1200 Series 2.8 GHz</li>
                <li><b>Memory: </b>1 GB</li>
                <li><b>Disk space: </b>850 MB of free disk space</li>
              </ul>
            </li>
            <br>
            <li><b>Macintosh OS X 10.5 Intel:</b>
              <ul>
                <li><b>Processor: </b>Dual-Core Intel</li>
                <li><b>Memory: </b>1 GB </li>
                <li><b>Disk space: </b>850 MB of free disk space </li>
              </ul>
            </li>
            <br>
            <li><b>Macintosh OS X 10.5 PPC:</b>
               <ul>
                 <li><b>Processor: </b>PowerPC G5</li>
                 <li><b>Memory: </b>1 GB </li>
                 <li><b>Disk space: </b>850 MB of free disk space </li>
               </ul>
              For more information, see <a href="../../../../kb/articles/mac.html">Using NetBeans on Mac OS X</a>. </li>
         </ul>
     </div>
      <br style="clear:both;" />
   </div>
   
<br style="clear:both;" />
   <br>
   <p>NetBeans IDE is also known to run on the following platforms:</p>
   <ul>
      <li>OpenSolaris 2008.11</li>
      <li>Java Desktop System 2</li>
      <li>Microsoft Windows 2000 Professional SP4 </li>
      <li>Mac OS X 10.4.11 Intel/Power PC</li>
      <li>Various other Linux distributions, such as Red Hat Enterprise Linux </li>
   </ul>
<br>
   <br>
   
      <p class="notes"><b>Note: </b>While the above system requirements apply to most configurations
         of the IDE, some areas of NetBeans Web and Java EE support are particularly
         demanding on system resources, especially when used in combination with
         various application servers. For best results when developing Web and Java EE applications,
         make sure that your system meets at least the <i>recommended</i> system requirements.
      <!--For details, see the <a href="#known_issues-web-java">Known Issues: Web and Java EE</a> section.--></p>
   
   
   <a name="req_sw"></a>
   <h2>Required Software</h2>
   <br>
   <p>NetBeans IDE runs on the J2SE (Java SE Development Kit) JDK 5.0 Update 14 and higher (including JDK 6.0), which consists of the Java Runtime
   Environment plus developer tools for compiling, debugging, and running applications written in the Java language. </p>
   
   <p>You can download the JDK for your platform from one of the sites listed
   below: </p>
   <ul>
      <li><b>Solaris</b>: <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></li>
      <li><b>Windows</b>: <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></li>
      <li><b>Linux</b>: <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></li>
      <li><b>Mac OS X</b>: <a href="http://www.apple.com/support/downloads/javaformacosx105update2.html">http://www.apple.com/support/downloads/javaformacosx105update2.html</a><br/>
      for Mac OS X 10.5.4 and higher (includes Java SE 6, version 1.6.0_07 for 64-bit Intel-based Macs (Core2Duo processors))
      <!--<p>Java update (Java SE 6, version 1.6.0_05) for users running Mac OS X 10.5.2 and higher on 64-bit Intel-based Macs is available at
      <a href="http://www.apple.com/support/downloads/javaformacosx105update1.html">http://www.apple.com/support/downloads/javaformacosx105update1.html</a>.</p>
      -->
      <p>For users running Mac OS X 10.4.11 and higher, a Java update (J2SE 5, version 1.5.0_16) is available at
      <a href="http://www.apple.com/support/downloads/javaformacosx104release7.html">http://www.apple.com/support/downloads/javaformacosx104release7.html</a>.</p>
      <p><strong>Note.</strong> Java upgrades for Mac OS X are also available via Apple's Software Update mechanism. </p></li>
      <li><b>Open VMS</b>: <a href="http://h18012.www1.hp.com/java/download/index.html">http://h18012.www1.hp.com/java/download/index.html</a></li>
   </ul>
   <p class="notes"><b>Note</b>: You can download archived versions of the JDK at
   <a href="http://java.sun.com/products/archive/index.html">http://java.sun.com/products/archive/index.html</a>.</p>
   
   
   <p align="center"><a href="#top">top</a></p><br>
   
   <a name="compatibility"></a>
   <h2>Compatibility</h2>
   <br>
   <p>When you first run the IDE, you can import a subset of the settings
      you used in previous versions of NetBeans IDE. If you choose not to import settings from a previous
   release, the IDE opens using the default settings.</p>
   
   <blockquote>
    <p class="notes"><b>Note:</b><i> The IDE only recognizes previous installations where the user directory resides in the default location. It does not recognize
      installations where you have specified a user directory using the <code>--userdir</code> switch. If you would like to import settings from an IDE that the installer does not recognize, download an archive version of the IDE instead of using the installer.</i>    
      </p>
      <p class="notes"><b>Note:</b> If you edit the Project Properties in NetBeans IDE 6.5.1
 for a project that was created in NetBeans IDE 4.1 or earlier, the project will no longer work in the earlier NetBeans IDE versions. </p>
   </blockquote>
   <br>
   <!--</blockquote>-->
   <p align="center"><a href="#top">top</a></p><br>

<a name="javafx"></a>
 <h2>JavaFX 1.1.1 SDK Availability</h2>
 <p>The JavaFX 1.1.1 SDK enables rich content application development and is available bundled with the IDE or by adding plugins to an existing installation.</p>
 <ul>
   <li>JavaFX 1.1.1 SDK bundled with the IDE. <a href="https://netbeans.org/downloads/index.html">(download)</a></li>
   <li>Adding the plugin to an existing IDE installation:</li>
   <ol>
   <li>In the IDE Main Menu go to: Tools > Plugins</li>
   <li>In the Plugins dialog select the Available Plugins tab and find the JavaFX SDK and JavaFX 1.1.1 plugins. Note: you may need to click the Reload Catalog button to see the JavaFX plugins.</li>
   <li>Check the box in the Install column next to the JavaFX SDK and Java FX 1.1.1. Click Install.
   </ol>
</ul>
<blockquote>
      <p class="notes"><b>Note:</b> The minimum supported JDK version for JavaFX 1.1.1 is JDK 6 Update 7 for Windows and JDK 5 Update 13 for Mac OS. Please see the <a href="http://java.sun.com/javafx/1/reference/system-requirements-1-1.html">JavaFX SDK System Requirements</a> page for more information.</p>
  <p class="notes"><b>Note:</b> For additional information about system requirements, supported features and known issues, please refer to the <a href="http://java.sun.com/javafx/1/reference/releasenotes/javafx-netbeans-release-notes-1-1-1.html">JavaFX 1.1.1 SDK Release Notes</a>.</p>
</blockquote>

<p align="center"><a href="#top">top</a></p><br>

   <a name="uml-plugin"></a>
 <h2>UML Module Availability</h2>
 <p>The UML diagram editors are completely rewritten for this release. The complexity of the new features caused development delays that resulted in the following changes: </p>
 <ul>
  <li><strong>UML is not in the NetBeans 6.5.1
 installer</strong>. UML was moved from the full installer to the Update Center and
can be installed via the Tools > Plugins menu in the IDE.  The UML module is also available in zip file format. </li>
   <li><b>UML Support in 6.5.1
</b>. Five diagram types are supported: activity, class, sequence, state and use
case diagrams. These diagrams are automatically upgraded from your pre-6.5.1
 UML projects when saved in the new version of the UML module. <!--The collaboration, component, and deployment diagrams will be completed after the 6.5.1
.1
 release.-->
</li>
</ul>

<p align="center"><a href="#top">top</a></p><br>
   
<a name="sql-db"></a>
   <h2>SQL Editor and Databases</h2>
   <p>There have been changes made to the database functionality in NetBeans 6.5.1
. They are as follows: </p>
   <ul>
     <li><b>Upgraded Drivers.</b> The MySQL drivers included in NetBeans IDE have been updated to  version is 5.1.6.</li>
     
      
      <li><b>Tested Drivers</b>
        <p>NetBeans IDE 6.5.1
 has been tested with the following databases and drivers.<br>
        </p>
        <table width="50%"  border="0" cellpadding="1">
          <tr>
            <th scope="col"><div align="left">Driver</div></th>
             <th scope="col"><div align="left">Version</div></th>
             <th scope="col"><div align="left">Example URL </div></th>
          </tr>
          <tr>
            <td>JavaDB</td>
             <td>Derby 10.4.1.3</td>
             <td><code>jdbc:derby://localhost:1527/sample</code>
             (Network)</td>
          </tr>
          <tr>
            <td>Oracle</td>
             <td>Oracle Database 10g Release 2 (10.2.0.2)</td>
             <td><code>jdbc:oracle:thin:@//localhost:1521:ora9i</code>             </td>
          </tr>
          <tr>
            <td>PostgreSQL</td>
             <td>8.3 Build 603</td>
             <td><code>jdbc:postgresql://jsmith.mycompany.com:5432/postgres</code></td>
          </tr>
          <tr>
            <td>MySQL</td>
             <td>MySQL Connector/J 5.1.6</td>
             <td><code>jdbc:mysql://localhost:3306/sample</code></td>
          </tr>
        </table>
      </li>
      <li><b>Other Drivers</b>
         <p>The following drivers and databases have not been formally tested, but should work based on experience.</p>
         <table width="50%"  border="0" cellpadding="5">
            <tr>
               <th scope="col"><div align="left">Driver</div></th>
               <th scope="col"><div align="left">Version</div></th>
               <th scope="col"><div align="left">Example URL</div></th>
            </tr>
            <tr>
               <td>Microsoft </td>
               <td>Microsoft SQL Server 2005 JDBC Driver 1.2.2828.100 </td>
               <td><code>jdbc:sqlserver://localhost:1433;databaseName=travel;selectMethod=cursor</code></td>
            </tr>
            <tr>
               <td> IBM</td>
               <td>Redistributable DB2 JDBC Type 4 driver v8 fixpack 13<br>               </td>
               <td><code>jdbc:db2://localhost:50002/sample</code></td>
            </tr>
            <tr>
               <td> jTDS </td>
               <td>jTDS 1.2.1 </td>
               <td><code>jdbc:jtds:sqlserver://test-mycompany.com:1433/travel</code></td>
           </tr>
            <tr>
               <td> DataDirect </td>
               <td>DataDirect Connect for JDBC - 3.6<br>
               DataDirect Connect for JDBC - 3.6.07</td>
               <td><code>jdbc:datadirect:oracle://localhost;SID=ora9i</code><br>
                  <code>jdbc:datadirect:sqlserver://localhost:1433;DatabaseName=travel;SelectMethod=cursor</code><br>
               <code>jdbc:datadirect:db2://localhost:50002;databaseName=sample</code></td>
            </tr>
            <tr>
               <td> Pointbase </td>
               <td>5.2 ECF build 294</td>
               <td><p>&nbsp;</p>
               <p><code>jdbc:pointbase://localhost:29092/sample</code></p>
               <p>&nbsp;</p></td>
            </tr>
   </table></li></ul>
<p>&nbsp; </p>
   <p align="center"><a href="#top">top</a></p><br>
   <a name="known_issues-installer"></a>
   <h2>Known Issues: Installer </h2>
   <p>The unresolved installer issues for this release are as follows: </p>
   
   <ul>
     <li><a name="6720021" id="6720021"></a><a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6720021">Issue #6720021: Installer doesn't work when using OpenSolaris with any version of JDK 5.</a>
         <blockquote>
           <p><b>Description:</b> Installer doesn't work when using OpenSolaris with any version of JDK 5.</p>
           <p><b>Workaround:</b> Install with JDK 6 or execute the "export AWT_TOOLKIT=XToolkit" command before running the installer using JDK 5.</p>
         </blockquote>
     </li>
     <li><a name="93568" id="93568"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=93568">Issue #93568: On Solaris and Linux, installation hangs when the network connection is lost.</a>
         <blockquote>
           <p><b>Description:</b> On Solaris and Linux platforms, if the network connection is lost, installation hangs when the installer is searching for a compatible JDK in network directories.</p>
           <p><b>Workaround:</b> Restore the network connection and proceed with the installation.</p>
         </blockquote>
     </li>
   <li><a name="117172" id="117172"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=117172">Issue #117172: A blank window when running the installer on  Ubuntu.</a>
         <blockquote>
           <p><b>Description:</b> The installer appears as the blank/grey dialog when running on Ubuntu with Beryl/Compiz/Compiz Fusion <br>
             installed. </p>
           <p><b>Workaround:</b> Execute the <tt>export AWT_TOOLKIT=MToolkit</tt> command before running the installer.</p>
         </blockquote>
     </li>
     <li><a name="119861" id="119861"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=119861">Issue #119861</a>, <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=117334">Issue #117334</a>: Installation stops with error when the unpack200 command is executed.
       <blockquote>
           <p><b>Description:</b> Installation stops with error during execution of the unpack200 command. This error can be caused by the Logitech Process Monitor (Webcam Effects Helper) application. </p>
         <p><b>Workaround:</b> If you have Logitech Process Monitor (Webcam Effects Helper) application (LVPrcSrv.exe) that is running on your system, switch it off before installation or uninstall</p>
       </blockquote>
       </li>
    <li><a name="122030" id="122030"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=122030">Issue #122030</a>, <a name="130368"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=130368">Issue #130368</a>: On Fedora Core 8 and 
       Ubuntu 8.04 alpha 6, installation fails when JDK 7 is used.
      <blockquote>
          <p><b>Description:</b> On Fedora Core 8 and Ubuntu 8.04 alpha 6, installation of GlassFish V2 fails when JDK 7 is used (JDK7 IcedTea 64-Bit Server VM). </p>
        <p><b>Workaround:</b> For these platforms, use JDK 5 or JDK 6.</p>
      </blockquote>
     </li>
	 <li>
	 <a name="123300" id="123300"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=123300">Issue #123300</a>.
	 On Fedora Core 8 the installer stops displaying the interface and returns to the console. 
	 <blockquote>
          <p><b>Description:</b> On Fedora Core 8, displaying the installation interface stops and the system returns to the console.</p>
        <p><b>Workaround:</b> See https://netbeans.org/servlets/ReadMsg?list=nbusers&amp;msgNo=98765.</p>
	 </blockquote>
	 </li>
     <li>The NetBeans IDE 6.5.1
 Download page can be displayed in the language
       selected from the Choose Page Language drop-down list.
     <blockquote>
       <p><b>Description:</b> The Download page is displayed in the language which is
         specified as default for the used browser. If you are using a non-localized
         browser, it will be displayed in English. To view the Download page in
         Chinese, Japanese, or Brazilian Portuguese, select the relevant language
         from the Choose Page Language drop-down list at the top of the Download page.
        </p>
       <p><b>Workaround:</b> The localized Chinese, Japanese, and Brazilian Portuguese versions of the Firefox browser
       allow opening a localized Download page. To view the Download page in     Chinese, Japanese, or Brazilian Portuguese, select the relevant language from the Choose Page Language drop-down list at the top of the Download page. </p>
	   </blockquote></li>
	   <li>The NetBeans IDE 6.5.1
 installation wizard does not start properly (hangs). After the user stops  the installation process manually, and the installer reports that another installer instance is running.  
	   <blockquote>
	     <p><b>Description:</b> On Windows, when Java6 is used by default and large zip files are stored on the desktop, the installation wizard does not start properly (hangs). After the user stops  the installation process manually, and the installer reports that another installer instance is running.	     </p>
         <p><b>Workaround:</b> Before the installation, remove all big zip files from the desktop</p>
		 </blockquote>
	   </li>
</ul>
<p align="center"><a href="#top">top</a></p><br>
 <a name="known_issues-core"></a>    
  <h2>Known Issues: Core IDE </h2>
   
   <p>The unresolved issues for this release are as follows: </p>
   <ul>
      <!-- TEMPLATE FOR BUGS -->
                <!--
                    <li><a href="ADD ISSUE LINK HERE">Issue #ADD_ISSUE_NUMBER_HERE: ADD_ISSUE_TITLE_HERE.</a>
                        <blockquote>
                            <p><b>Description:</b> ADD DESCRIPTION HERE.</p>
                            <p><b>Workaround:</b> ADD WORKAROUND HERE.</p>
                        </blockquote>
                    </li>
                -->


      <li><b>Difficulties starting the IDE (Solaris x86 and Dual-Core Opteron).</b>
         <blockquote>
            <p><b>Description:</b> On certain Solaris x86 and Dual Core Opteron configurations,
            you may encounter problems starting the IDE due to a JDK bug with loading GTK <code>look&feel</code> libraries.</p>
            <p><b>Workaround: </b>If you encounter this behavior, specify the following command line option:
               <tt>-laf javax.swing.plaf.metal.MetalLookAndFeel</tt>            </p>
         </blockquote>
      </li>

      <li><b>Characters do not display properly in some Asian locales.</b>
         <blockquote>
            <p><b>Description:</b> When running the IDE with some Asian locales on Ubuntu and some other Linux distributions,
               the IDE's screen text may become unreadable. On certain Linux distributions multi-byte characters may display as
            a rectangle due to JDK font setting issues. 
           <p><b>Workaround: </b>Please see the FAQ for help with resolving this issue: <a href="http://wiki.netbeans.org/FaqI18nLinuxAsianFonts">http://wiki.netbeans.org/FaqI18nLinuxAsianFonts</a></p>
        </blockquote>
     </li>

      <li><a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6720021">Issue #6720021</a>:
          Difficulties starting the IDE on OpenSolaris using any version of JDK 5.
         <blockquote>
            <p><b>Description: </b> IDE may not start on OpenSolaris when using any version of JDK 5.</p>
            <p><b>Workaround: </b> Use JDK 6 or execute the <code>export AWT_TOOLKIT=XToolkit</code> command before starting the IDE.</p>
         </blockquote>
      </li>
      
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=64840">Issue #64840</a>:
         Network communication broken on Linux with IPv6 enabled.
         <blockquote>
            <p><b>Description: </b>Network communication broken on Linux with IPv6 enabled,
               preventing the IDE from connecting to bundled servers,
            Auto Update, etc.</p>
            <p><b>Workaround: </b>If this happens, run the IDE using the
               <code>-J-Djava.net.preferIPv4Stack=true'</code> switch.
               Alternatively, disable IPv6 (in <tt>/etc/modules.conf</tt>
            or <tt>/etc/modprobe.conf</tt>).</p>
            <p>For more information see:
            <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5087907">Issue #5087907</a>.</p>
         </blockquote>
      </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=62919">Issue #62919</a>:
         Profiled application can crash when taking a memory snapshot.
         <blockquote>
            <p><b>Description:</b>When profiling an application, the profiled application
            may crash when you attempt to take a memory snapshot.</p>
            <p><b>Workaround: </b>Start the application you want to profile with the <tt>-Xnoclassgc</tt> switch.</p>
         </blockquote>
      </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=110074">Issue #110074</a>:
         Editor periodically freezes on Solaris.
         <blockquote>
            <p><b>Description:</b> When running the IDE on Solaris with JDK 6, 6u1 or 6u2, threads may become blocked for a long time and
            cause the editor to be unresponsive.</p>
            <p><b>Workaround: </b>Upgrade your JDK 6 installation to Update 3 or newer.</p>
         </blockquote>
      </li>
      
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88776">Issue #88776</a>:
         Profiled application can crash when profiling using dynamic attach mode.
         <blockquote>
            <p><b>Description:</b>When running on JDK 1.6,
            profiling an application with dynamic attach mode can lead to the profiled application crashing.</p>
            <p><b>Workaround: </b>Start the application you want to profile with the <tt>-Xshare:off</tt> switch.</p>
            <p>Also see:
            <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=113847">Issue #113847</a>.</p>
         </blockquote>
      </li>
      
      
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=119617">Issue #119617</a>:
         Cursor lost in editor and cannot type using keyboard
         <blockquote>
            <p><b>Description:</b> It can sometimes occur that after using a hint in the editor window
            that the insertion point in the editor disappears and you cannot type using the keyboard.
            This has mostly been reported on Mac OS X 10.4, but there have been some reports on some versions of Ubuntu.            </p>
            <p><b>Workaround: </b>Use the mouse to open and then close a dialog window (for example, a properties dialog).
            This returns the focus to the editor and the insertion point and keyboard will work as normal.</p>
         </blockquote>
      </li>
       <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=119567">Issue #119567</a>:
         Desktop database application project does not run if non-ASCII is in the name of the project or the path to that project.
         <blockquote>
            <p><b>Description:</b> The cause is in the current toplink libraries used in the IDE.
An <a href="http://glassfish.dev.java.net/issues/show_bug.cgi?id=3827 ">issue on toplink library</a> has been filed on it. This Glassfish issue has been fixed for Glassfish v2.1. However, NetBeans 6.5.1
 supports glassfish v2 u2, and the fix is not in this version of Glassfish.</p>
            <p><b>Workaround: </b>Use only ASCII characters in the name of a desktop database application project or the path to that project.</p>
         </blockquote>
      </li>
   
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=130357">Issue #130357</a>: I18N - Mac OS won't generate javadoc if project name or path has multibyte
        <blockquote>
        <p><b> Description: </b>The javadoc task while creating the temporary parameter file is written in default OS encoding which is MacRoman.
          This appears to be a Mac OS situation where the BSD and Mach parts (system &amp; kernel calls) accept parameters in UTF-8, 
          but OS and HFS promote themselves as MacRoman.</p>
        <p><b>Workaround: </b>Avoid using multibyte in the name of the project or the path to the project.</p>
        </blockquote>
      </li>

     <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=152916">Issue #152916</a>:
           	Difficulties starting IDE on 64-bit Mac OS X 10.5.5 using JDK 1.6_07
         <blockquote>
            <p><b>Description:</b> On certain 64-bit Mac OS X 10.5.5 configurations with JDK 1.6_07 set as the system's default Java platform,
            you may encounter problems starting the IDE from the Finder and from the command line.</p>
            <p><b>Workaround: </b>Switch system default to JDK 1.5.</p>
         </blockquote>
      </li>
     <!--li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=130245">Issue #130245</a>: I18N - Mac OS: A Mercurial (hg) repository cannot be created  from a project if multibyte is in path to the project on a Mac using 10.4.x.
       <blockquote>
        <p><b> Description: </b>An error message is displayed in the Output window or Terminal after trying to create the repository.</p>
        <p class="notes"><b>Note: </b> This problem does not occur on Mac 10.5 with Mercurial 1.0 or
Mercurial 0.9.5. The problem occurs on Mac 10.4 with Mercurial 0.9.5 (Mercurial 1.0 is currently not available for Mac 10.4).</p>
 <p><b>Workaround: </b>Create A Mercurial repository from command line by using the command 
   <tt>hg init &lt;DirectoryName&gt;</tt>.</p>
       </blockquote>
     </li-->
<!--li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=133893">Issue #133893</a>: Refactoring(Rename) fails with <tt>ClassCastException</tt>
    <blockquote>
        <p><b> Description: </b>While refactoring (removing, renaming, etc.) a Java class, the refactoring dialog displays the following error: &quot;Module Spring Beans threw java.lang.ClassCastException: org.netbeans.editor.ext.ExtSyntaxSupport&quot;. This happens especially in a web project which was extended by the Spring Web MVC framework. </p>
        
 <p><b>Workaround: </b>Right-click the project node in the Projects view and click Properties. In the Project Properties dialog, select the Spring Framework category. In the Configuration Files tab, remove the web/WEB-INF/jsp/index.jsp file and click OK.    
    </blockquote>
     </li-->
     <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=144388">Issue #144388</a>: Add Argument for Standalone MySQL Server Installation<tt></tt>
       <blockquote>
        <p><b> Description: </b>If a user uses a standalone MySQL server with the IDE, no output is displayed in the Output window of the IDE. </p>
        
 <p><b>Workaround: </b>Add the argument <code>--console</code> to the list of arguments to start the server. 
       </blockquote>
     </li>
     
 <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=144398">Issue #144398</a>: SQL CC: CC doesn't appear for MySQL system tables<tt></tt>
       <blockquote>
        <p><b> Description:</b> After executing <tt>select * from information_schema.statistics;</tt> and then <tt>select * from</tt> followed by Ctrl+Space, no system table appears in the CC list.</p>
        
        <p><b>Workaround: </b>Use the Connector/J Driver in MySQL 5.1.7.
       </blockquote>
     </li>
     <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=150416">Issue #150416</a>: Sample DB can't be created without InnoDB<tt></tt>
       <blockquote>
        <p><b> Description:</b> Sample database in NetBeans use foreign keys. The MyISAM engine doesn't support foreign keys. Therefore, sample databases cannot be used without the InnoDB storage engine.</p>
        <p><b>Workaround: </b>Install the InnoDB transactional storage engine.
       </blockquote>
     </li>
</ul>
<p align="center"><a href="#top">top</a></p><br>
   
   
   
   <a name="known_issues-web-java"></a>
   <h2>Known Issues: Web and Java EE </h2>
   
   
   <p>The unresolved Web and Java EE issues for this release are as follows: </p>
   <ul>
      
      <li><a name="backwards"></a>Visual Web JSF Backwards Compatibility Kit
         <blockquote><b>Description: </b>The Visual Web JSF Backwards Compatibility kit provides supplemental libraries that are required by the Visual Web designer to support projects that are based on J2SE 1.4 or J2EE 1.4. These libraries are not open source and are therefore distributed as a separate NetBeans plugin. The kit will install the following libraries that are required for J2EE 1.4 projects:
            <ul>
               <li>JavaServer Faces 1.1 Reference Implementation (RI)</li>
               <li> Rowset Reference Implementation (RI) </li>
               <li>JAX-RPC libraries from JWSDP 1.6</li>
            </ul>
            <p>To get the Backwards Compatibility Kit, in the main menu, choose Tools &gt; Plugins. </p>
         </blockquote>
         
         
      </li>
      
      <li><a name="woodstock"></a>Woodstock 4.1 and 4.2 JSF Components Release Notes
         <blockquote><b>Description: </b>Woodstock 4.1 and 4.2 JSF Components Release Notes are located on the Project Woodstock
            web site, at <a href="http://java.net/projects/woodstock/" target="_blank">http://java.net/projects/woodstock/</a>.
         The build shipped with NetBeans IDE 6.5.1
 is Woodstock 4.2 Build 3.</blockquote>
      </li>
      
      <li><a name="backwards"></a>No Support for Ajax Sample Components
         <blockquote><b>Description: </b>Blue Prints Ajax Sample components are not supported in this release because they are based on a old version of Dojo that is no longer compatible with later versions. Woodstock components bundled in NetBeans depends on more recent versions of Dojo APIs for client side rendering. For most of the widely used BP Ajax components (supported in NetBeans 5.5), there is equivalent functionality available from Project woodstock as listed below.
            <ul>
               <li>Auto Complete - This blog (http://blogs.sun.com/dmitry/entry/creating_autocomplete_entry_field_with ) describes how to achieve similar functionality with components from Project Woodstock library.</li>
               <li>Pop up Calendar - Project Woodstock includes a Calendar component.</li>
               <li>Select Value field - Use auto complete instead which has similar functionality but different UI.</li>
               <li>Progress Bar - Project Woodstock includes a Progress Bar component.</li>
               <li>Google Map - Planned for future.</li>
               <li>Rating Component - Planned for future.</li>
               <li>RichText Editor -  Not supported.</li>
         </ul></blockquote>
         
      </li>
      
      
      
      
      
      
      
      
      <li><a name="113888"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=113888">Issue #113888</a>: Woodstock themes are incompatible with migration of projects from NetBeans IDE 5.5/5.5.1 to NetBeans 6.5.1
.
         This issue is related to <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=99063">Issue #99063</a>, Missing Body Element switching to new Woodstock theme.
         <blockquote>
            <p><b>Description: </b>Projects with custom themes migrated to NetBeans IDE 6.5.1
 will produce Missing Body Element errors.</p>
            <p><b>Workaround: </b>Manually switch to the default theme before migrating.
               
               
            Custom themes will not work and will need to be rebuilt.</p>
         </blockquote>
     </li>
      
      
      <li><a name="98577"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=98577">Issue 94193</a>: Not possible to edit bean properties
         in the Outline window or through source packages in the Projects window.
         <blockquote>
            <p><b>Description: </b>In NetBeans IDE 6.5.1
, the Add Menu item is disabled in the Navigator window and there is
            no functionality for editing the properties through source packages.</p>
            <p><b>Workaround: </b><ol><li>Double click SessionBean1 (or other java file) to open the bean in the Java editor.
                  <li>Manually add the property, such as <tt>private String CustomerId;</tt>.</li>
                  <li>Right click on the property and choose Generate Code.</li>
                  <li>From the Generate popup menu, select Getters and Setters.</li>
                  <li><p>In the Generate Getters And Setters dialog for SessionBean1, select your property and press OK.</p>
                  Public Getter and Setter methods are inserted after your property.</li>
            </ol></p>
         </blockquote>
      </li>
      
      <a name="95022"></a>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=95022">Issue #95022</a>: Resizing of text field and other components does not work.
         
         <blockquote>
            <p><b>Description: </b>Due to a change in Woodstock components, resize handles have been removed from the following Woodstock components: TextField, Text Area,Password Field, Drop Down and List Box. This issue impacts especially projects imported from Java Studio Creator and NetBeans Visual Web Pack 5.5/5.5.1. Resized components may look different from how they looked in previous releases.</p>
            <p><b>Workaround: </b>For TextField and Text Area components, use the columns and rows attributes, respectively. Drop Down and List Box have been enhanced to include a new width property. </p>
         </blockquote>
      </li>
      <li>When displayed in IE7, all button components may be rendered with an incorrect width.
         <blockquote>
            <p><b>Description: </b>When a button is placed using absolute positioning, its width is incorrect. For example,
            when NetBeans IDE 6.5.1
  uses absolute positioning to place components in Grid Layout Mode, this problem may occur.</p>
            <p>IE7 expects a value to be specified for the width of buttons. If a width attribute is not specified, the width is set
               to <tt>width:auto</tt>, which results in the button's width being set to the entire available width of the button's container element.
               For example, if the button style has <tt>left=130px</tt> then the button will start at 130px left and will expand to the width of
            the <tt>&lt;body&gt; </tt>element. </p>
            <p><b>Workaround: </b> There are several different ways to solve this issue in NetBeans:</p>
            <ul>
               <li>Specify the width property for the button, or resize the button in the IDE to make the IDE assign a width to the button. </li>
               
               <li> In the IDE, drop the button into a Group Panel component to put the button inside a span tag. In this case there is no need to set the positioning as the
                  IDE sets the positioning for the Group Panel component. For example, the JSP code of a Button inside a Group Panel component may look like this:
                  <pre class="examplecode">&lt;webuijsf:panelGroup binding="#{Page1.groupPanel1}" id="groupPanel1" style="position: absolute; left: 240px;
top: 168px"&gt;<br>    &lt;webuijsf:button binding="#{Page1.button1}" id="button1" text="Button"/&gt;
                  &lt;/webuijsf:panelGroup&gt;</pre>
               </li>
            </ul>
         </blockquote>
      </li>
      
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=106299">Issue #106299</a>: faces-config.xml of Visual Web JSF projects no longer contains the locale section, as in previous versions.
         <blockquote>
            <p><b>Description:</b> faces-config.xml used to have the commented section listing how to indicate other locales, with some lines for certain locales as an example.  Users must now   add these line manually, making sure the name of the locales of interest are in the supported locales
            section. </p>
            
            
            <p><b>Workaround:  </b>Manually add the desired locale to the locale section  of the  faces.config.xml file. Here is an example of how the code should appear:</p>
            <pre class="examplecode">&lt;application&gt;<br>       &lt;locale-config&gt;<br>           &lt;default-locale&gt;en&lt;/default-locale&gt;<br>           &lt;supported-locale&gt;<b>desired locale</b>&lt;/supported-locale&gt;<br>       &lt;/locale-config&gt;<br>   &lt;/application&gt;
            </pre>
            <p>See also <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=103085">Issue #103085</a></p>
         </blockquote>
      </li>
      
      
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=125965">Issue #125965</a>: Null Pointer Exception on drag and drop after closing a Visual Web project close.
         <blockquote>
            <p><b>Description:</b> When working with two Visual Web JSF projects, and when closing the second project and returning
            to the first, may yield an Null Pointer Exception for the first drag and drop. </p>
            
            
            <p><b>Workaround:  </b>Press refresh in designer and continue working.
            If this does not help, it is necessary to restart the IDE.</p>
            
         </blockquote>
      </li>
      
      
      
      
      
   </ul>
   <!--p align="center"><a href="#top">top</a></p>
   <br>
   <a name="known_issues-websvc"></a>
   <h2>Known Issues: Web Services</h2>
   <p>NetBeans 6.5.1
 Web Services enables you to develop SOAP and RESTful services and clients. JAX-WS (Metro), REST (Jersey),  Axis2, and JAX-RPC architectures are supported. From the Web Services manager, you can also drag-and-drop service operations into Java or PHP applications.</p>
   <p>There are not any unresolved Web Services issues for this release at this time.</p>
<ul>
  <!--li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=143332&x=18&y=9">Issue 143332</a>: Consuming SaaS services in PHP does not work for 
    Amazon/Facebook/Twitter/Delicious
    <blockquote><p><b>Description:</b> Create a PHP project. Drag and drop an SaaS operation from Amazon/Facebook/Twitter/Delicious into index.php. Set up authentication in Profile.php. Run the project. Either nothing happens or errors are returned.</p></blockquote>
    <blockquote>
      <p><b>Workaround: </b>No workaround in NetBeans IDE 6.5.1
 Release Candidtate. The issue has been fixed on the trunk.</p>
    </blockquote>
  </li-->

     <!--li>If you are developing RESTful web services using the Spring framework AND
     deploying them to the Tomcat web server, you must alter the applicationContext.xml file in
     your Web service project's WEB-INF folder.
       <p> In <tt>applicationContext.xml</tt>, replace the two bean definitions
         elements with id values <tt>entityManagerFactory</tt> and <tt>transactionManager</tt> with the following
       bean definitions:</p>
       <pre class="examplecode">&lt;bean class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" id="entityManagerFactory"&gt;
    &lt;property name="persistenceUnitName" value="YourPUName"/&gt;
&lt;/bean&gt;
&lt;bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"&gt;
    &lt;property name="entityManagerFactory" ref="entityManagerFactory"/&gt;
&lt;/bean&gt;</pre>
       <p class="notes">This defect has been fixed on the trunk and does not appear in
       development builds, only Beta builds.</p>
       <p class="alert">You still have to add derby jars to Tomcat libraries as described in
  <a href="http://wiki.netbeans.org/DeployREST2Tomcat55">the NetBeans wiki pages</a>.</p>
     </li-->
   
<p align="center"><a href="#top">top</a></p>
   <br>
   <a name="known_issues-mobility"></a>
   <h2>Known Issues: Java ME</h2>
   <br>
   <p> NetBeans 6.5.1 enables you to develop Java ME based applications for MIDP, CLDC and CDC devices. </p>
<p>The unresolved Java ME issues for this release are as follows: </p>
   <ul>
      <!--li> Mac OS, Solaris and other operating systems <a href="http://wiki.netbeans.org/wiki/view/FaqJ2MEOtherOpSys">are not supported</a> by MIDP emulator platforms.
         <blockquote>
            <p><b>Description:</b> NetBeans 6.5.1
 Mobility and Sun Java Wireless Toolkit 2.5.2 bundled with this
            release only support Windows and Linux platforms.</p>
            <p><b>Workaround:</b> Mac OS users can download the <a href="http://mpowerplayer.com/">MPowerplayer</a> to develop mobile applications. The FAQ has <a href="http://wiki.netbeans.org/FaqMobilityMpowerMacOs">instructions for installing Mpowerplayer in the IDE</a>.</p>
        </blockquote>
      </li-->
      <li>Connected Device Configuration (CDC) application development requires the installation of a CDC platform emulator.
         <blockquote>
          <p><b>Description:</b> There is not a CDC platform emulator platform bundled with this release.</p>
          <p><strong>Workaround:</strong> Download and install the <a href="http://java.sun.com/javame/downloads/sdk30.jsp">Java ME SDK 3.0</a>.
           After installation you must <a href="http://wiki.netbeans.org/FaqJavaMESDKinstall">register the Java ME platform</a> in the IDE.</p>
         </blockquote>
      </li>
         <li>The Java ME module will not run if a directory name, path to the installation directory, or user directory contain non-ASCII characters.
         <blockquote>
            <p><b>Description: </b>The Sun Java Wireless Toolkit does not support non-ASCII characters in project paths. </p>
            <p><strong>Workaround:</strong> Make sure that your user directory does not contain non-ASCII characters. If it does, change the IDE's default
            user directory.</p>
         </blockquote>
      </li>

      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=139031">NetBeans Issue #139031</a>: Emulator does not start in Windows if the Java binary is not in the environment path.
         <blockquote>
            <p><b>Description: </b>Sun Java Wireless Toolkit and other emulators do not launch in Windows if <code>Java.exe</code> is not in the path.</p>
            <p><strong>Workaround:</strong> Install the JDK using the default settings or, if performing a custom install, be sure to select the public JRE for installation. If the JDK is already installed you can add the <code>Java.exe</code> file to  your system's path settings.</p>
         </blockquote>
      </li>
   </ul>
   <p align="center"><a href="#top">top</a></p>
   <br>
   <!--a name="known_issues-uml"></a>
   <h2>Known Issues: UML </h2>
   <br>
   <p> NetBeans 6.5.1
 UML 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 class="notes"><b>Note:</b> NetBeans 6.5.1
 UML is currently not supported on the Macintosh OS X platform. UML is available for the Macintosh OS X platform via the NetBeans Plugin Manager. Please see the NetBeans wiki for UML Mac issues, <a href="http://wiki.netbeans.org/wiki/view/UMLMacIssues">http://wiki.netbeans.org/wiki/view/UMLMacIssues</a> to get more information about the known Macintosh OS X issues and workarounds.</p>
   
   
   <p align="center"><a href="#top">top</a></p><br-->
   
   <a name="known_issues-soa"></a>
   <h2>Known Issues: SOA</h2>
   <br>
   <p>This NetBeans SOA 6.5.1
 release lets you explore and evaluate new 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>The unresolved SOA issues for this release are as follows: </p>
   
<ul>
      <li>To use the Sun Java System Access Manager, you must install the full download of the IDE, and install
         
         
         Java Application Platform SDK Update 3 Beta
         
         or later from
         <a href="http://java.sun.com/javaee/downloads/index.jsp">http://java.sun.com/javaee/downloads/index.jsp</a>. <!--For more information about the steps required to install the Access Manager, see
      <a style="" href="../../../../kb/68/javaee/identity-amsecurity.html#install">Installing the Sun Java System Access Manager</a>.--></li>
      <li><a name="114171"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=114171">Issue #114171</a>: WSDL files manually edited by CASA throw Null Pointer Exception in the build.xml output.
         <blockquote>
            <p><b>Description: </b>CASA does not support user editing of its generated files, and provides no warning when a user does so.</p>
            <p> <b>Workaround: </b>Do not edit CASA-generated WSDL files. Manual editing of WSDL file is not supported and will cause unexpected results.</p>
         </blockquote>
      </li>
       
      <li><a name="84622"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=84622">Issue #84622</a>: IDE does not roll back the retrieval of the WSDL file(s) after you cancel the PartnerLink dialog.
         <blockquote>
            <p><b>Description: </b>If you cancel the PartnerLink dialog that appears when you drag a WSDL file or a Web Service node from a NetBeans project onto a diagram, the IDE does not roll back the retrieval of the WSDL files(s).</p>
            
            <p> <b>Workaround:</b> If these files are not needed by the project, simply delete them manually from the Projects window, as you would delete any other project resource.</p>
         </blockquote>
      </li>
      <li><a name="112344" id="112344"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=112344">Issue #112344</a>:   Drag and Drop in the tree view of XML schema editor may throw exceptions.
         <blockquote>
            <p><b>Workaround:</b> Use JDK 1.6.0_02 or later.</p>
         </blockquote>
      </li>
      
            <li><a name="96237" id="96237"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=96237">Issue #96237</a>: The XSLT Designer does not support messages defined on complex, simple, or built-in types.
         <blockquote>
            <p><b>Description:</b> In this release, the XSLT   Designer does not support  messages declared in WSDL using the <tt>type="..."</tt> attribute. Only the declarations with the <tt>element="..."</tt> attribute are supported.</p>
         </blockquote>
         </li>
</ul>
   <p align="center"><a href="#top">top</a></p>
   <br>
<!--a name="known_issues-ruby"></a>
   <h2>Known Issues: Ruby</h2>
   <p>NetBeans 6.5.1
 Ruby enables you to develop ...</p>
   <p>The unresolved Ruby issues for this release are as follows:</p>
   <ul>
       <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=119567">Issue #xxxxxxx</a>:
         Desccribe impact of issue on Ruby functionality
         <blockquote>
           <p><b>Description:</b> Describe issue.</p>
           <p><b>Workaround: </b>Describe workaround if one exists.</p>
         </blockquote>
      </li>
   </ul>
   
   <p align="center"><a href="#top">top</a></p>
   <br-->   
<a name="known_issues-cnd"></a>
   <h2>Known Issues: C/C++</h2>
   <br>
   <p>NetBeans 6.5.1
  C/C++ support C and C++ applications on
      Microsoft Windows, Macintosh OS X, Linux, and the
      Solaris<small><sup>TM</sup></small> Operating System. C/C++ developers can
      bring existing applications into the NetBeans project system, or develop new
      applications and libraries. NetBeans C/C++ support covers the end-to-end
      development cycle: projects and templates, an advanced language-aware editor,
   makefile-based builds, and debugging.</p>
   <p>For information on installing and configuring the compilers and tools for
      NetBeans C/C++ support, see <a href="../cpp-setup-instructions.html">Installing and
      Configuring C/C++ Support</a>.
   </p>
   <p>The unresolved C/C++ issues for this release are as follows:
   <ul>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=149153">Issue
      # 149053</a>: On Windows platforms, the path to make tools cannot
      contain spaces
         <blockquote>
            <p><b>Description: </b>On Windows platforms, if the path to make
            tools contains embedded spaces, the path is truncated and the
            tools are not found.
            </p>
            </blockquote>
            </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=148204">Issue
      # 148204</a>: On Windows platforms, user input does not work in Output
         window when debugging
         <blockquote>
            <p><b>Description: </b>On Windows platforms, when you are debugging
            an application and the console type for the project is set to Output Window, you cannot
            type input in the Output window. This issue does not affect
            development using a remote host.
            </p>
            <p>
            <b>Workaround: </b>Set the console type to External Terminal by
            right-clicking the project node in the Projects window, selecting
            the Run node in the Project Properties dialog box, selecting
            External Terminal from the Console Type drop-down list, and
            clicking OK.
            </p>
            </blockquote>
            </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=121776">Issue #
         121776</a>: Sun Studio compiled code sometimes has problems being debugged with gdb
         <blockquote>
            <p><b>Description: </b>On the Solaris and Linux operating systems, code
               compiled with the Sun Studio compilers cannot always be correctly debugged
               with the gdb debugger. Most known problems are fixed in the Sun Studio 12 software but
               several more exist. If you run into problems
               debugging programs compiled with Sun Studio 12 compilers, the first thing you
               should do is apply the latest Sun Studio 12 product patches. If your problem
               still exists, please file a defect in Issuezilla and make this task
               depend on it.
            </p>
            <p>
               As problems are found, we will open new issues and update this task to
               depend on them, giving some idea of the current state of debugging programs
               compiled with Sun Studio
               12 compilers using NetBeans and the gdb debugger.
            </p>
            <p>These problems do not affect debugging code compiled with Sun Studio 12
            compilers using the Sun Studio 12 IDE and the dbx debugger.
         </blockquote>
      </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=121775">Issue
         #121775</a>: Need latest Xcode for debugging on Tiger (Mac OS X 10.4)
         <blockquote>
            <p><b>Description: </b>When debugging on the Macintosh with Tiger (Mac OS
               X 10.4), the
               default version of the gcc and g++ compilers generates
               code with a bug in the debug output. Apple has released an updated Xcode package
               (version 2.5) with a fix for this problem. The correct versions of gcc, g++,
               and gdb are:
               <br><br>
               gcc: 4.0.1  - Apple build 5367<br>
               g++: 4.0.1  - Apple build 5367<br>
               gdb: 6.3.50 - Apple build 573 (10/20/2006)
               <br>
           <p>
                  To download this version of Xcode, see
                  <a
                     href="http://developer.apple.com/tools/download">
                  <tt>http://developer.apple.com/tools/download</tt></a>.
           </p>
               <p>
                  This problem is not an issue on Leopard (Mac OS X 10.5).
               </p>
               The symptoms of the problem are that executables compiled with the
               <tt>-gdwarf</tt> flag (the default for C/C++ application projects) have
               incorrect line information and breakpoints may be ignored.
            </p>
         </blockquote>
      </li>
   </ul>
   <p align="center"><a href="#top">top</a></p>
<a name="more_info"></a>
   <h2>More Information</h2>
   <br>
   <p>You can find news, articles, additional modules, and other useful information on the NetBeans project web site.
      Since NetBeans is an open-source project, the web site also provides access to source code, a bug database, information on
      creating your own NetBeans modules, and much more. For more information, visit
   <a href="https://netbeans.org/">http://www.netbeans.org</a>. </p>
   
   <h4>Documentation</h4>
   <p>To get the most out of the features in NetBeans IDE 6.5.1, check out the
      web-based tutorials and screencasts. Check these pages frequently because
we add new content all the time.</p>
   <ul>
      <li><a href="../../../../kb/index.html">NetBeans IDE Documentation</a></li>
      <li><a href="../../../../kb/docs/screencasts.html">NetBeans IDE Screencasts</a></li>
</ul>
   
   <p>The built-in help system for NetBeans IDE 6.5.1
 has been updated to reflect the changes
   in the user interface since release 6.1. </p>
   
   <br>
 
 <p class="notes"><b>Note: </b>If you are running the NetBeans IDE on Mac OS X, see <a href="/../../kb/articles/mac.html"> Using NetBeans on Mac OS X</a> for more information about keyboard equivalents, tips and tricks, and other Mac-specific topics. </p-->
   
   
   <h4>Community</h4>
   <p>You can keep up to date on the the latest developments and interact with the NetBeans community
   by signing up for NetBeans project mailing lists at <a href="../../../lists/index.html">https://netbeans.org/community/lists/</a>.</p>
   <p>You can also post your questions at <a href="http://forums.netbeans.org/">http://forums.netbeans.org/</a> which are synchronized with the most widely used NetBeans mailing lists. Note that a separate sign up for the forums is required.
   
   <br style="clear:both;">
   
   <br>
 <div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback: NetBeans IDE 6.5.1
 Release Notes">Send Us Your Feedback</a></div>
<br style="clear:both;">
<p class="align-center"><a href="#top">top</a></p><br>
</body>
</html>
