<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
*  Copyright © 1997, 2015, Oracle and/or its affiliates. All rights reserved.
*  Use is subject to license terms.
-->
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>NetBeans IDE 8.2 Release Notes</title>
  <meta name="description" content="NetBeans IDE 8.2 Release Notes: System Requirements, New Features, Compatibility, Known Issues, Documentation">
  <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
  <link rel="stylesheet" type="text/css" media="print" href="../../../print.css">
  <style type="text/css">
<!--
.style2 {color: #000000}
-->
  </style>
</head>  
<body>
  <p>	<a name="top"></a>
  </p>
<h1>NetBeans IDE 8.2 Release Notes</h1>
  <div class="articledate" style="margin-left: 0px;">Last updated: <!-- #BeginDate format:Am1 -->September 23, 2016<!-- #EndDate --> </div>
<p>NetBeans<sup class="tmtext">TM</sup> IDE is a modular, standards-based integrated development environment (IDE), written in the Java<sup class="tmtext">TM</sup> programming language.
The NetBeans project consists of a <a href="https://netbeans.org/features/index.html">full-featured open source IDE</a> written in the Java programming language and a <a href="https://netbeans.org/features/platform/index.html">rich client 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 8.2 Installation Instructions</a>. 
To learn about the new features included in this release of the IDE see the <a href="index.html">NetBeans IDE 8.2 Release Information</a> page.</p>
  
  <h2 style="color:#0E1B55">Contents</h2>
  <ul>
   <li><a href="#new">What's New in 8.2</a></li>
   <li><a href="#supported_technologies">Supported Technologies, Servers, and Mobile Platforms</a>
   <ul>
   <li><a href="#tech">Supported Technologies</a></li>
   <li><a href="#tested_servers">Tested Application Servers</a></li>
   <li><a href="#known_servers">Known to Run Application Servers</a></li>
   <li><a href="#mobile_platforms">Tested Mobile Platforms</a></li>
   <li><a href="#known_mobile_platforms">Known to Run Mobile Platforms</a></li>
   </ul></li>
   <li><a href="#system_requirements">System Requirements</a></li>
   <li><a href="#req_sw">Required Software</a></li>
   <li><a href="#javafx">JavaFX Support</a></li>
   <li><a href="#sql-db">SQL and Databases</a></li>
   <li><a href="#ml">Multilingual Support</a></li>
   <li><a href="#compatibility">Compatibility with Earlier Releases</a></li>
   <li><a href="#deprecated">Archived Modules and Features</a></li>
   <li><a href="#known_issues">Known Issues</a>
   <ul>
   <li><a href="#known_issues-installer">Installer</a></li>
   <li><a href="#known_issues-core">Core IDE</a></li> 
   
   <li><a href="#known_issues-web-java">Web and Java EE</a></li>
   <li><a href="#known_issues-html5">HTML5</a></li>
   <li><a href="#known_issues-php">PHP</a></li>
   <li><a href="#known_issues-cnd">C/C++</a></li>
  </ul></li>
   <li><a href="#more_info">More Information</a></li>
  </ul>
<a name="new"></a>
 
 <h2>What's New in 8.2</h2>

 <ul>
 <li>ECMAScript 6 and Experimental ECMAScript 7 Support</li>
 <li>HTML5/JavaScript Enhancements</li>
 <li>PHP 7  support</li>
 <li>Docker support </li>
  
 <li>Java Editor and Profiler Enhancements</li>
 <li>Debugger Enhancements </li>
 <li>C/C++ Enhacements</li>
 
 </ul>
 
<p>All the details on these and other enhancements are listed on the <a href="http://wiki.netbeans.org/NewAndNoteworthyNB82">NetBeans IDE 8.2 New and Noteworthy page</a>.</p>   
<p>For more about this release, see the <a href="index.html">NetBeans IDE 8.2 Release Information</a> page.</p>
  <a name="supported_technologies"></a>
  <h2>Supported Technologies, Servers, and Mobile Platforms</h2>
  <p>NetBeans IDE 8.2 supports the following technologies and has been tested with the following application servers and mobile platforms. 
     If you plan to use versions other than those explicitly listed, please note that you may encounter unpredictable IDE behavior. 
</p>
   <a name="tech"></a>
  <h5>Supported technologies:</h5>
  <table class="full-width">
   <tr>
    <td style="width:45%" class="valign-top">
   <ul>
     <li>Java EE 7, Java EE 6, and Java EE 5</li>
     <li>JavaFX 2.2.x and 8</li>
     <li>Java ME SDK  8.0</li>
     <li>Java Card 3 SDK</li>
     <li>Struts 1.3.10</li>
     <li>Spring 4.0.1, 3.2.7, 2.5</li>
     <li>Hibernate 4.2.6, 3.6.10</li>
	 <li>Issue Tracking
     <ul>
      <li>Bugzilla 4.4 and earlier</li>
      <li>Jira 3.13+ and 5.0+</li>
      </ul>
     </li>
	 <li>Node.js 4.0+ </li>
   </ul>
   
   </td>
    <td>
   <ul>
     
     <li>PHP 7, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1</li>
     <li>Groovy 2.1</li>
     <li>Grails 2.3, 2.2</li>
     <li>Apache Ant 1.9.7</li>
     <li>Apache Maven 3.0.5 and earlier </li>
	 
     <li>C/C++/Fortran</li>
     <li>VCS
     <ul>
      
      <li>Subversion: 1.8, 1.7,  1.6</li>
      <li>Mercurial: 2.8.x and later   </li>
      <li>Git 1.8.х and later </li>
     </ul>
     </li>
   </ul>    </td>
   </tr>
   
  </table>
  
<br style="clear:both;">
  <a name="tested_servers"></a>
  <h5>Tested application servers:</h5>
  
  <div style="float:left; width:48%;  margin:0px auto; padding:10px; background-color:#ffffff; border:0px solid #e3e3e3;">
   <ul>
     <li>GlassFish Server Open Source Edition 4.1.1 </li>
     <li>WebLogic 12c</li>
   </ul>
</div>

<br style="clear:both;"> 
<a name="known_servers"></a>
<h5>Known to run application servers:</h5>

<div style="float:left; width:48%; margin:0px auto; padding:10px; background-color:#ffffff; border:0px solid #e3e3e3;">
   <ul>
     <li>GlassFish Server Open Source Edition 3.x </li>
     <li>Tomcat 7.x and 8.0.27 </li>
     <li>WildFly 8, 9, and 10 </li>
     <li>JBoss AS 7.x</li>
     <li>WebLogic 11g</li>
	 
   </ul>
</div>
<br style="clear:both;">
<a name="mobile_platforms"></a>
<h5>Tested mobile platforms:</h5>

<div style="float:left; width:48%; margin:0px auto; padding:10px; background-color:#ffffff; border:0px solid #e3e3e3;">
   <ul>
     <li>Android 4.4</li>
	 <li>iOS 7.0</li>
	 <li>Cordova 3.3</li>
	 
   </ul>
</div>
<br style="clear:both;">
<a name="known_mobile_platforms"></a>
<h5>Known to run mobile platforms:</h5>

<div style="float:left; width:48%; margin:0px auto; padding:10px; background-color:#ffffff; border:0px solid #e3e3e3;">
   <ul>
     	 <li>iOS 7.1</li>
		 <li>Cordova 3.4</li>
	 
   </ul>
</div>

<br style="clear:both;"> 
  
  <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>
  
  
  <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 Vista SP1/Windows  7 Professional:</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>
      <ul>
       <li><b>Ubuntu 9.10:</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>
      
      
       <ul>
       <li><b>Macintosh OS X 10.7 Intel:</b>
         <ul>
         <li><b>Processor: </b>Dual-Core Intel</li>
         <li><b>Memory: </b>2 GB</li>
         <li><b>Disk space: </b>650 MB of free disk space </li>
        </ul>
       </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  7 Professional/Windows 8/Windows 8.2:</b>
        <ul>    
         <li><b>Processor: </b>Intel Core i5 or equivalent</li>
         <li><b>Memory: </b>2 GB (32-bit), 4 GB (64-bit)</li>
         <li><b>Disk space: </b>1.5 GB of free disk space</li>
        </ul>
       </li>
        
      <li><b>Ubuntu 15.04:</b>
        <ul>
         <li><b>Processor: </b>Intel Core i5 or equivalent</li>
         <li><b>Memory: </b>2 GB (32-bit), 4 GB (64-bit)</li>
         <li><b>Disk space: </b>1.5 GB of free disk space</li>
        </ul>
      </li>
         
             
      <li><b> OS X 10.10 Intel:</b>
        <ul>
        <li><b>Processor: </b>Dual-Core Intel</li>
        <li><b>Memory: </b>4 GB</li>
        <li><b>Disk space: </b>1.5 GB of free disk space</li>
       </ul>
      </li>
    </ul>
   </div>
   <br style="clear:both;">
  </div>
  
<br style="clear:both;">
  
<p>NetBeans IDE is also known to run on the various other Linux distributions such as Oracle Linux 5, Ubuntu 8.x, Red Hat Enterprise Linux, Fedora 14, and many others.</p>
<p class="notes"><b>Note</b>: NetBeans Web and Java EE support are particularly demanding on system resources - especially when used in combination 
              with application servers. While the above system requirements apply to most configurations of the IDE, for the best results 
            make sure that your system meets at least the <i>recommended</i> system requirements when developing Web and Java EE applications.</p>
			
  <a name="req_sw"></a>
  <h2>Required Software</h2>
    <p>NetBeans IDE runs on the Java SE Development Kit (JDK) which consists of the Java Runtime Environment and 
    developer tools for compiling, debugging, and running applications written in the Java language. </p>
    <p>The tested JDK for this release is  JDK 8u101 for Windows, Linux, and OS X. 
    The 8.2 version of the IDE cannot be installed or run on the JDK older than JDK 8.</p>
  
    <p class="notes"><b>Note</b>: </p>
	<ul>
	<li>The PHP and C/C++ NetBeans bundles only require the Java Runtime Environment (JRE) 8 to be installed and run.</li>
    <li>Java features in the IDE and JavaFX 8 features require JDK 8.</li> 
	</ul>
  
    <p>You can download the JDK for your platform from the 
   
   <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java SE Downloads</a> page. </p>
  
     <p class="notes"><b>Note</b>: Java SE 8  is required to install and run NetBeans IDE 8.2.</p>
   </li>
</ul>
 
  <p align="center"><a href="#top">top</a></p>

<a name="javafx"></a>
  <h2>JavaFX Support</h2>
    <p>The JavaFX SDK is not bundled with the NetBeans IDE 8.2 release.</p>
    
	<p>The JavaFX 8 SDK  is bundled with JDK 8 for Windows, OS X and Linux.
    You can install the JavaFX 8 SDK together with 
    <a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">Java SE Development Kit 8</a> 
    as a co-bundled product.    </p>
    
    <p>Unlike previous versions of NetBeans IDE, NetBeans IDE 8.2 does not require that you 
        set up an &quot;FX-enabled&quot; Java platform in order to utilize JavaFX support in the IDE. 
        You can develop JavaFX projects in the IDE 
        if you install  JDK 8.</p>

    
    
    <p>Please note that the supported JDK version for JavaFX 8 is Java SE 8.</p>
  
    <p>See the <a href="http://docs.oracle.com/javafx/release-documentation.html" target="_blank">JavaFX Release Documents</a> 
       page for more information about system requirements, supported platforms and known issues for the current and previous
       versions of JavaFX SDK.</p>
    

 
  <p align="center"><a href="#top">top</a></p>  
<a name="sql-db"></a>
  <h2>SQL Editor and Databases</h2>
 <p>The following changes have been made to the database functionality in NetBeans IDE 8.2: </p>
 <ul>
   <li><b>Upgraded Drivers.</b> The MySQL drivers included in NetBeans IDE have been updated to version 6.0.</li> 
   <li><b>Tested Drivers</b>
    <p>NetBeans IDE 8.2 has been tested with the following databases and drivers.</p>
    <table width="70%" border="0" cellpadding="1">
     <tr class="tblheader">
      <th width="65" scope="col"><div align="left">Driver</div></th>
       <th width="241" scope="col"><div align="left">Version</div></th>
       <th width="557" scope="col"><div align="left">Example URL </div></th>
     </tr>
     <tr class="tbltd0">
      <td>JavaDB</td>
       <td>Derby 10.3.1.4</td>
       <td><code>jdbc:derby://localhost:1527/sample</code> (Network)</td>
     </tr>
     <tr class="tbltd1">
      <td>Oracle</td>
       <td>Oracle Database 11g (11.1.0.7)</td>
       <td><code>jdbc:oracle:thin:@//localhost:1521:ora11i</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="70%" border="0" cellpadding="5">
      <tr class="tblheader">
        <th width="75" scope="col"><div align="left">Driver</div></th>
        <th width="110" scope="col"><div align="left">Version</div></th>
        <th width="655" scope="col"><div align="left">Example URL</div></th>
      </tr>
	   <tr class="tbltd0">
      <td>PostgreSQL</td>
       <td>8.x</td>
       <td><code>jdbc:postgresql://jsmith.mycompany.com:5432/postgres</code></td>
     </tr>
     <tr class="tbltd1">
      <td>MySQL</td>
       <td>MySQL Connector/J 6.0</td>
       <td><code>jdbc:mysql://localhost:3306/sample</code></td>
     </tr>
      <tr class="tbltd0">
        <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 class="tbltd1">
        <td> IBM</td>
        <td>Redistributable DB2 JDBC Type 4 driver v8 fixpack 13        </td>
        <td><code>jdbc:db2://localhost:50002/sample</code></td>
      </tr>
      <tr class="tbltd0">
        <td> jTDS </td>
        <td>jTDS 1.2.1 </td>
        <td><code>jdbc:jtds:sqlserver://test-mycompany.com:1433/travel</code></td>
      </tr>
      <tr class="tbltd1">
        <td> DataDirect </td>
        <td>DataDirect Connect for JDBC - 3.6 
        DataDirect Connect for JDBC - 3.6.07</td>
        <td><code>jdbc:datadirect:oracle://localhost;SID=ora11i</code> 
         <code>jdbc:datadirect:sqlserver://localhost:1433;DatabaseName=travel;SelectMethod=cursor</code> 
        <code>jdbc:datadirect:db2://localhost:50002;databaseName=sample</code></td>
      </tr>
     
  </table>
  </li>
   <li>For Database troubleshooting information please refer to the <a href="http://wiki.netbeans.org/NetBeansUserFAQ#Database_Connectivity" target="_blank"> NetBeans Database Connectivity User FAQ</a>.</li>
</ul>

  
 <p align="center"><a href="#top">top</a></p> 
   
<a name="ml"></a>
  <h2>Multilingual Support Information</h2>
  <p>NetBeans IDE is translated into the following languages: Brazilian Portuguese (BR), Japanese (JP), Simplified Chinese (ZH), and Russian (RU).</p>
  <p>Community translations of the IDE are also available in several <a href="http://wiki.netbeans.org/TFL10nCommunityStatus" target="_blank">additional languages</a> and can be <a href="/downloads/" target="_blank">downloaded</a> from the Community Contributed section of the IDE Language drop-down menu.</p>
   <p align="center"><a href="#top">top</a></p> 

 <a name="compatibility"></a>
  <h2>Compatibility with Earlier Releases</h2>
  
  <p>When the IDE is run for the first time after installation you have the option to import some of the settings
   used in a previous installation. The IDE opens using the default settings if you choose not to import the settings from the existing installation. 
   Note the IDE only recognizes previous installations when the user directory resides in the default location. 
   It does not recognize installations that use the <code>--userdir</code> switch to specify a user directory. 
If you would like to import settings from a location that the installer does not recognize do the following:</p> 
  <ol>
     <li>Start the IDE go to Tools &gt; Options in the main menu.</li>
     <li>Click the Import button at the bottom of the Options dialog.</li>
     <li>In the Select Options to Import dialog, click the Browse button and navigate to the user directory that contains 
     the settings you want to import. For more about the location of the NetBeans IDE <tt>userdir</tt>, see the FAQ
     <a href="http://wiki.netbeans.org/FaqWhatIsUserdir" target="_blank">What is a <tt>userdir</tt> and where can I find it?</a></li>
</ol>
   
   <p align="center"><a href="#top">top</a></p> 

  <a name="deprecated"></a>
 <h2>Archived Modules and Features</h2>
  <p>The complete list of NetBeans Archived Features is available at <a href="http://wiki.netbeans.org/NetBeansArchivedFeatures" target="_blank">http://wiki.netbeans.org/NetBeansArchivedFeatures</a>.</p>
 

 <p align="center"><a href="#top">top</a></p> 
  
   <a name="known_issues"></a>
  <h2>Known Issues</h2>
  <a name="known_issues-installer"></a>
  <h3>Installer</h3> 
  <p>The unresolved installer issues for this release are as follows: </p>
 
  <ul>
   <li><a name="93568"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=93568" target="_blank">Issue #93568</a>: On Linux, installation hangs when the network connection is lost.
     <blockquote>
      <p><b>Description:</b> On 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"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=117172" target="_blank">Issue #117172</a>: A blank window when running the installer on Ubuntu.
     <blockquote>
      <p><b>Description:</b> The installer appears as the blank/gray dialog when running on Ubuntu with Beryl/Compiz/Compiz Fusion 
       installed. </p>
      <p><b>Workaround:</b> Execute the <b><tt>export AWT_TOOLKIT=MToolkit</tt></b> command before running the installer.</p>
     </blockquote>
   </li>
	 <li>
	 <a name="123300"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=123300" target="_blank">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 <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373" target="_blank">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373</a>.</p>
	 </blockquote>
	 </li>
	 	  
</ul>
<p align="center"><a href="#top">top</a></p> 
 <a name="known_issues-core"></a>    
  <h3>Core IDE </h3>
   
   <p>The unresolved Core IDE 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>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>
           <p><b>Workaround:</b> Please see the FAQ for help with resolving this issue: <a href="http://wiki.netbeans.org/FaqI18nLinuxAsianFonts" target="_blank">http://wiki.netbeans.org/FaqI18nLinuxAsianFonts</a></p>
        </blockquote>
     </li>      
      
	  <li><b>Profiling application performance can fail when using the Advanced option.</b>
	   <blockquote>
            <p><b>Description:</b> The IDE displays the message &quot;Redefinition failed with error 62&quot; when attempting to profile application performance (CPU) and the Advanced (instrumented) option is selected.</p>
            <p><b>Workaround:</b> Restart the application with the VM argument <code>-Xverify:none</code> to disable classfile verification. 
                You must restart the application to disable classfile verification. You cannot disable verification if the application is running.</p>
       </blockquote>
     </li> 
	  
	  <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=119617" target="_blank">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=130357" target="_blank">Issue #130357</a>: I18N - OS X will not generate javadoc if the project name or path has multibyte
        characters.
         <blockquote>
        <p><b> Description: </b>The javadoc task is written in  MacRoman, the default OS X encoding, when creating the temporary parameter file.
          This may be due to the BSD and Mach parts (system &amp; kernel calls) accepting parameters in UTF-8, 
          but the OS X and HFS only accepting MacRoman.</p>
        <p><b>Workaround: </b>Avoid using multibyte characters 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=207060" target="_blank">Issue #207060</a>: On Windows XP,  UNC paths cannot be used as URIs.
         <blockquote>
            <p><b>Description:</b> On Windows XP, the automatic update of any file view (Project, Files, etc.) does not work when UNC style paths are used (for example,
<tt>\\MyServer\myShare\myDirectory</tt>) instead of drive letters (for example, <tt>Y:\myDirectory</tt>). </p>
           <p><b>Workaround:</b> Restart the IDE. Alternatively,  choose <tt>Tools</tt> &gt; <tt>Options</tt> &gt; <tt>Miscellaneous</tt> &gt; <tt>Files</tt> from the main menu, deselect the <tt>Enable auto-scanning of sources</tt> option, and select <tt>Refresh Folder</tt> in the context menu of a folder.</p>
       </blockquote>
     </li>
	 
	 <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=211406" target="_blank">Issue #211406</a>:
          Views and Palettes keeps scrolling itself to the drag position after drag-and-drop.
         <blockquote>
            <p><b>Description:</b> After dragging and dropping something from Projects or Files Views or Palette
            in GUI designers, when you scroll the View or Palette up or down it will
            scroll back to the drag position, requiring you to scroll to select some nodes and components.</p>
           <p><b>Workaround:</b> You must restart the IDE.</p>
        </blockquote>
     </li>
	 
	 <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=231807" target="_blank">Issue #231807</a>:
          File chooser displays no file contents in the Open Project and Select Project Location dialog boxes.
         <blockquote>
            <p><b>Description:</b> On OS X, the file chooser is blank after File &gt; Open Project is selected in the IDE or a folder for a new project location is selected in a new project wizard.</p>
           <p><b>Workaround:</b> Disable the &quot;Maximize Native Look and Feel&quot; option.</p>
        </blockquote>
     </li>
     
    
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=256211" target="_blank">Issue #256211</a>: Test execution fails with Surefire 2.19.
         <blockquote>
         <p><b>Description</b>: When using Surefire 2.19, test execution is not performed and an error is shown that no tests are executed when running "test file" from the NetBeans IDE due to issue <a href="https://issues.apache.org/jira/browse/SUREFIRE-1191" target="_blank">SUREFIRE-1191</a>.</p>
          <p><b>Workaround</b>: Use Surefire 2.18.</p>
        </blockquote>   
     </li>
	 <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=219756" target="_blank">Issue #219756</a>: On Linux, the ClassCastException is thrown when running the IDE on JDK 8. 
	   <blockquote>
         <p><b>Description</b>:  On Linux, the ClassCastException is thrown when running the IDE on JDK 8 and the IDE's window becomes unresponsive after the machine wakes up from the Sleep mode. See <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7172749">JDK-7172749</a> for details.</p>
          <p><b>Workaround</b>: Start the NetBeans IDE with the <code>-Dsun.java2d.xrender=false</code> parameter.</p>
       </blockquote>   
     </li>
</ul>

<p align="center"><a href="#top">top</a></p> 

	   
          <a name="known_issues-web-java"></a>
   <h3>Web and Java EE </h3>
    <p>The unresolved Web and Java EE issue for this release is as follows: </p>
       <ul>
	   
       <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=183614" target="_blank">Issue #183614</a>: Step Into does not work properly with EJB.
         <blockquote>
         <p><b>Description</b>: When debugging a servlet, Step Into an EJB call stops at unrelated code.</p>
          <p><b>Workaround</b>: Set a breakpoint in the EJB implementation code and use Step Over.</p>
         </blockquote>   
      </li>
	 
      <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=246431" target="_blank">Issue #246431</a>: Cannot run Java Web application on Linux on WildFly.
         <blockquote>
         <p><b>Description</b>: Web application fails to run on WildFly server on Linux due to encrypted partition.</p>
          <p><b>Workaround</b>: Right-click the WildFly server node in the Services window and select Edit Configuration. Add the &lt;journal-type&gt;NIO&lt;/journal-type&gt; element directly below &lt;hornetq-server&gt; and restart the server.</p>
         </blockquote>   
      </li>
	  
	 
      </ul>
	  
      
      <p align="center"><a href="#top">top</a></p>
  <a name="known_issues-html5"></a>
   <h3>HTML5</h3>
    <p>The unresolved HTML5 issue for this release is as follows: </p>
    <ul>
        <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=236967" target="_blank">Issue #236967</a>: Cordova projects may fail to build with Cordova 3.1.0. 
         <blockquote>
         <p><b>Description</b>: Due to a <a href="https://issues.apache.org/jira/browse/CB-4992">Cordova issue</a> 
             the IDE might replace the old version of a plugin with a newer one, 
             which can result in dependent plugins being removed and the Cordova project failing to build.</p>
          <p><b>Workaround</b>: Perform the following steps:</p>
          <ol>
                <li>Remove <tt>core</tt> from the Cordova plugin name in the plugin properties file (<tt>[projectFolder]/nbproject/plugins.properties</tt>)<br> 
          (for example, changing <tt>org.apache.cordova.core.camera</tt> to <tt>org.apache.cordova.camera</tt>.)</li>
                <li>Delete contents of the <tt>[projectFolder]/platforms</tt> and <tt>[projectFolder]/plugins</tt> folders.</li>
                <li>Rebuild the project.</li>
          </ol>
         </blockquote>   
      </li>
	  
        
    </ul>
   
   <p align="center"><a href="#top">top</a></p>
   <!--a name="known_issues-websvc"></a>
   <h2>Known Issues: Web Services</h2>
   <p align="center"><a href="#top">top</a></p-->
   <!--a name="known_issues-db"></a>
<h2>Known Issues: Database Support</h2>
    <p> NetBeans enables you to write code to integrate and connect your applications to databases. </p>
<p>The unresolved database issues for this release are as follows: </p-->
  
   <!--<a name="known_issues-mobility"></a>
   <h3>Java ME</h3>
 
   <p> NetBeans enables you to develop Java ME based applications for MIDP, CLDC and CDC devices. </p>

   <p>The unresolved Java ME issue for this release are as follows: </p>
   
   <ul>  
         <li><a href="http://www.netbeans.org/issues/show_bug.cgi?id=" target="_blank">Issue #</a>: 
         <blockquote>
            <p><b>Description: </b></p>
            <p><strong>Workaround:</strong> </p>
         </blockquote>
      </li>
</ul>
  

       <p align="center"><a href="#top">top</a></p>-->
 
 <a name="known_issues-cnd"></a>
   <h3>C/C++</h3>
    
   <p>NetBeans C/C++ support C,  C++,  Fortran and various Assemblers (x86, SPARC, etc.) applications on Microsoft Windows, Macintosh OS X, and Linux. 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" target="_blank">Installing and Configuring C/C++ Support</a>.
</p>-->
    <p>The unresolved C/C++ issues for this release are as follows: </p>
    <ul>
    <li>
	 <a name="200196"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=200196" target="_blank">Issue #200196</a>: On some Linux platforms, &quot;Step Over&quot;  sometimes behaves as &quot;Continue&quot;.
	  
	 <blockquote>
     <p><b>Description:</b>  On some Linux platforms (Ubuntu, Debian, etc.), &quot;Step Over&quot;  sometimes behaves as &quot;Continue&quot; when versions of GDB are equal to 7.2 or lie within the range of 7.2 to 8.0.</p>
     <p><b>Workaround:</b> Use GDB versions earlier than 7.2, or GDB 7.4 and more recent, or specify &quot;Console Type&quot; (Project Properties &gt; Run)  to another option in the Terminal window.</p>
	 </blockquote>
	 </li>	
	 <li>
	 <a name="225920"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=225920" target="_blank">Issue #225920</a>: On Linux, C makefile build fails with the &quot;Permission denied&quot; error, if the <tt>tmp</tt> directory has no execution permission.
	  
	 <blockquote>
     <p><b>Description:</b> On Linux, C makefile build fails with the &quot;Permission denied&quot; error, if the <tt>tmp</tt> directory has no execution permission.</p>
     <p><b>Workaround:</b> Set the execution permission to the <tt>tmp</tt> directory or run the IDE with the <tt>-J-Djava.io.tmpdir=&lt;path_to_new_tmp_dir&gt;</tt> option to redefine the <tt>tmp</tt> directory. </p>
	 </blockquote>
	 </li>	
	 <li>
	 <a name="234221"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=234221" target="_blank">Issue #234221</a>:  On Windows 32-bit, the IDE (and 32-bit version of JDK) does not work with the 64-bit version of Cygwin and vice versa. 
	  
	 <blockquote>
     <p><b>Description:</b> On the 32-bit version of Windows, the IDE (and 32-bit version of JDK) does not work with the 64-bit version of Cygwin and vice versa</p>
     <p><b>Workaround:</b> Install and use the IDE, JDK, and Cygwin with the matching bitness (for example, all the three software components need to be 32-bit).</p>
	 </blockquote>
	 </li>
	 <li>
	 <a name="235406"></a><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=235406" target="_blank">Issue #235406</a>: On Windows, the IDE displays the contents of the Terminal window with low contrast.
	  
	 <blockquote>
     <p><b>Description:</b> On Windows, the IDE displays the contents of the Terminal window with low contrast.</p>
     <p><b>Workaround:</b> Set the PS1 environment variable in the Cygwin <tt>&lt;home_dir&gt;/.bashrc</tt> file to another value. </p>
	 </blockquote>
	 </li>		
   </ul>


<a name="more_info"></a>
   <h2>More Information</h2>
    
   <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/" target="_blank">http://netbeans.org</a>. </p>
   
   <h4>Documentation</h4>
   <p>To get the most out of the features in NetBeans IDE 8.2, check out our web-based tutorials at the <a href="../../../kb/index.html" target="_blank">NetBeans IDE Documentation</a> page.</p>
   <p>Additional reference documentation resources include:</p>
  <ul>
      <li>The <a href="http://wiki.netbeans.org/NetBeansUserFAQ" target="_blank">NetBeans User FAQ</a> has many workarounds and troubleshooting tips not included in the 
   Release Notes.</li>     
      <li>The IDE's built-in help system has detailed support information for features included in all of the NetBeans IDE modules.</li>
      <li>See <a href="../../../kb/articles/mac.html" target="_blank"> Using NetBeans IDE on OS X</a> for information about keyboard equivalents, tips, tricks, and other OS X-specific topics.</li>
	  <li>See <a href="http://docs.oracle.com/cd/E62200_01/index.htm" target="_blank"> NetBeans 8.2 Online Documentation Library</a> for information on how to use the NetBeans IDE and detailed information on the functionality available within it.</li>
</ul> 
   
   <h4>Community</h4>
   <p>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" target="_blank">http://www.netbeans.org/community/lists</a>.</p>
   <p>You can post questions at <a href="http://forums.netbeans.org/" target="_blank">http://forums.netbeans.org</a>. The forums are synchronized with the most widely used NetBeans mailing lists. Note that a separate sign up for the forums is required.</p>
      <p>Please visit the community translation information page at <a href="http://nblocalization.netbeans.org/" target="_blank">http://nblocalization.netbeans.org</a> to learn how to contribute to additional language localizations of the NetBeans UI, help and user documentation.</p>
      <br style="clear:both;">
      
<div class="feedback-box"><a href="http://www.netbeans.org/about/contact_form.html?to=3&subject=Feedback:%20NetBeans%20IDE%208.2%20Release%20Candidate%20Release%20Notes" target="_blank">Send Us Your Feedback</a></div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>