<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <title>NetBeans IDE 6.5 Release Notes and System Requirements</title>
   <meta name="description" content="NetBeans IDE 6.5 Release Notes: System Requirements, Compatibility, Known Issues, Documentation">
   <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
</head>   
<body>
   <a name="top"></a>
   <h1>NetBeans IDE 6.5 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.</p>
   
   <h2 style="color:#0E1B55">Contents</h2>
   <ul>
      <li><a href="#65">What's New in 6.5</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</h2>
   <p>NetBeans IDE 6.5 is a significant update to NetBeans IDE 6.1 and
   includes the following changes:</p>
   <ul>
        <li>PHP support with code completion, Xdebug and web service features.</li>
        <li>JavaFX 1.1 supports animation, graphics and media codecs for rich content application development for desktop and mobile devices.</li>
        <li>New Support for Groovy and Grails.</li>
        <li>Improved JavaScript, AJAX and Ruby support.</li>
        <li>Automatic Compile and Deploy on Save for Java and Java EE applications.</li>
        <li>Improved database support: SQL history, SQL completion, and  results viewing and editing improvements.</li>
        <li>Improved Java ME support for Data Binding, SVG and Custom Component creation.</li>
        <li>GUI Builder: Support for Nimbus and simple class names.</li>
        <li>JUnit: single test method support.</li>
        <li>Debugger: Redesign of Step into feature.</li>
   </ul>
<p>For information about the main development features in NetBeans IDE,
   see the <a href="index.html">NetBeans IDE 6.5 Information</a> page.</p>
   
   <a name="supported_technologies"></a>
   <h2>Supported Technologies</h2>
   <br>
   <p>NetBeans IDE 6.5 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</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 PE 8.1 update 2</li>-->
         <li>Sun Java System Application Server 9.0 (GlassFish V1)</li>
         <li>Sun Java System Application Server 9.1 (GlassFish V2)</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 in order to work with NetBeans IDE 6.5.</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>
             </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>
      <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>: 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.</p>
      <p class="notes"><b>Note</b>: If you edit the Project Properties in NetBeans IDE 6.5 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 SDK Availability</h2>
 <p>The JavaFX 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 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 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. Click Install.
   </ol>
</ul>
<blockquote>
      <p class="notes"><b>Note:</b> The minimum supported version of the JDK for JavaFX 1.1 is JDK 6 Update 7 for Windows and JDK 5 Update 13 for Mac OS.</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.html">JavaFX 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 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</b>. Five diagram types are supported: activity, class, sequence, state and use
case diagrams. These diagrams are automatically upgraded from your pre-6.5 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 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. 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 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 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 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>Because there is no known workaround for this issue, it is recommended to use
            an alternative Linux distribution if you must use a locale subject to this behavior. </p>
        </blockquote>
     </li>

      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=154624">Issue #154624</a>:
         Numerous problems reported when  using JDK 6 Update 12 with the IDE.
         <blockquote>
            <p><b>Description: </b>A wide range of problems occur when using the IDE with JDK 6 Update 12. </p>
            <p><b>Workaround: </b>Use JDK 6 Update 11 with the IDE.</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="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6389282">JDK 6 Issue #6389282</a>:
         Java applications created from the Java Desktop Application project template might not run under Chinese and
         Japanese on Linux when using JDK 6.
         <blockquote>
            <p><b>Description: </b>Java applications created from the
               Java Desktop Application project template might not be able to be run in
            Japanese and Chinese Linux locales with JDK 6 installed.</p>
            <p><b>Workaround: </b>Use JDK 5.0 or run projects from English locale.</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 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=118174">Issue #118174</a> and other related issues: I18N - Javadoc not found on Solaris, maybe other platforms, in certain cases using the Firefox
     web brower
       <blockquote>
        <p><b> Description: </b> When using Firefox on Solaris, and sometimes on Mac OS and Windows, if multibyte or non-ascii characters are used in project name or path, and if the project encoding property is not set to <tt>utf-8</tt> (which means these paths are in that encoding), the generated javadoc is not found or shown.</p>
        <p>For example: In the case of a project that has <tt>euc-jp</tt> as its project encoding property on Solaris, and has project name or path using Japanese characters of that encoding, the javadoc won't be found and an error message 
         is displayed in Firefox.</p>
        <p>The problem is that part of the URL is <tt>UTF-8</tt> and part is <tt>EUC-JP</tt>; the
          javadoc tool stores the URL in the encoding it
          generates for the web page, but the correct way is to generate the text in
         requested encoding (in this case <tt>EUC-JP</tt>) and URLs in <tt>UTF-8</tt>.</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=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=130311">Issue #130311</a>: On Mac OS, some messages or strings in another language or character set are not shown in output window correctly
        <blockquote>
        <p><b> Description: </b>For example, on Mac OS X 10.4. when using <tt>System.out.println</tt> in the Java code,the strings containing Japanese characters display correctly in the source code, but are displayed as question marks in the output window.</p>
        <p><b>Workaround: </b>There is no workaround at this time.</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 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.
         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 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, 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  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 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 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 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 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> The Sun Java Toolkit 1.0 for CDC is not bundled with the 6.5 release.</p>
            <p><strong>Workaround:</strong> <a href="http://java.sun.com/products/cdctoolkit/download-1_0.html">Download the Sun Java Toolkit 1.0 for CDC</a>
               from the Sun Developer Network. The <a href="../../../kb/docs/javame/cdcemulator-setup.html">NetBeans CDC Emulator Platform Setup Guide</a> has instructions for installing this and other SDKs for CDC development.</p> </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="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6389282">JDK 6 Issue #6389282</a>: Chinese and Japanese Linux locales with JDK 6 may fail to run projects.
         <blockquote>
            <p><b>Description: </b>Java ME projects created in NetBeans can not be run in Japanese and Chinese Linux locales with JDK 6 installed. </p>
           <p><strong>Workaround:</strong>  Use JDK 5.0 or run projects from  English locale. </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 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 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 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 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  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=151761">Issue
      # 151761</a>: gdb confused on line breakpoints for files with embedded spaces
         <blockquote>
            <p><b>Description: </b>If you try to set a line breakpoint with 
            an absolute path with embedded spaces, the command fails.
            </p>
            </blockquote>
            </li>
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=149736">Issue
      # 149736</a>: Breakpoints do not work on Mac OS X if Output window is
      used
         <blockquote>
            <p><b>Description: </b>On Mac OS X, if you set a line breakpoint, 
            set the Console Type to Output window, and then start the debugger,
            the debugger starts but does not stop the program at the breakpoint
            and gets into an "unknown" state. You can end the debugging session
            by clicking the Finisher Debugger Session button.
            </p>
            <p><b>Workaround: </b>Use the External Terminal console type.</p>
            </blockquote>
            </li>
      <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=150099">Issue
      # 150099</a>: On Windows platforms, cleaning and building might corrupt a
      project
        <blockquote>
           <p><b>Description: </b>On Windows platforms, executing a Clean and Build on a
           project in which paths to include files are stored as absolute causes the
           project to become corrupted.
      </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=15610">Issue
      # 151610</a>: On Windows platforms, debugger cannot attach to a project
      built with MinGW 
         <blockquote>
            <p><b>Description: </b>On Windows platforms, when you build a
            project with MinGW tools. run the application in the IDE, and try to
            attach the debugger to the running process, the Attach dialog box
            contains only <code>/usr/bin/ps</code>.
            </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 new functionality in NetBeans IDE 6.5, check out the
      continuing series of web-based tutorials and screencasts. Keep checking these pages,
   as we are adding 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 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 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>
