United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8017218 REGRESSION:Fail to detect Java after upgrade to 7u25 on IE (PnP fails to register plugin in IE)
JDK-8017218 : REGRESSION:Fail to detect Java after upgrade to 7u25 on IE (PnP fails to register plugin in IE)

Details
Type:
Bug
Submit Date:
2013-06-20
Status:
Closed
Updated Date:
2014-02-12
Project Name:
JDK
Resolved Date:
2013-07-13
Component:
deploy
OS:
windows_7
Sub-Component:
plugin
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
Fixed Versions:
7u40 (b34)

Related Reports
Backport:
Backport:
Backport:
Backport:

Sub Tasks

Description
Java Version:
    7u25

OS version:
     Operating System: Windows 7 Enterprise 64-bit (6.1, Build 7601) Service Pack 1 

Browser:
    Reproduced on IE8, may apply to all versions of IE. 

Description:
    Attempted to launch a game with an unauthenticated user on IE8 by visiting:

http://www.pogo.com/games/turbo-21

    Only having a problem on IE8, works fine on IE9 and 10.

Clicked ???Start Game???

 

Clicked ???ok??? on this IE popup
IEpopup.jpg
 

After about a minute of waiting for the game to load. The game never loads. This error screen appeared.
Error.jpg

IE appears to not have Java installed even though the 7u25 install completed without errors. Applets/games will run on other browsers on the system (Chrome/FF), just not IE. 
                                    

Comments
I don't think deploy code should be aware of _patch at all.  Install should call registerdeploy only when all files are ready and in place.  We need discussion with install team on what's the correct fix.
                                     
2013-06-21
Workaround: Reinstall 7u25

By downloading (if needed) and reinstalling 7u25, the correct registry vale is set and IE can then correctly load the plugin. 
Click 'yes' on the ".. this is already installed.. install again?" dialog. 

Download if necessary from java.com: https://java.com/download

                                     
2013-06-21
SQE-OK to get this issue fixed for 7u40
                                     
2013-07-10
justification:  we need this for patch in place to work in 7u40
                                     
2013-07-10
* Tried on x86 Vista(sp2)/public 7u25/  IE 8   (8.0.6001.19418)
 - java.com detection applet worked as expected
-  pogo  RISK applet game  and  their  pogo  com.pogo.client.jvmtest.Applet detected 7u25 properly

* x86 XP/IE 8 tested earlier and did not find this issue with pogo games 
                                     
2013-06-20
Reproduced on Win7 x64, IE8
                                     
2013-06-21
Problem only happens when you do patch in place upgrade from 7u21 to 7u25.  It needs to 7u21 FCS b11.  And 7u25 online installer.

Problem is during patch in place case, when RegisterDeploy is called, there is this file:

C:\Program Files\Java\jre7\bin\jp2ssv_patch.dll

RegisterDeploy needs to call into jp2ssv.dll for setting various dynamic/static CLSIDs.  And in the registerdeploy code, we have code to load jp2ssv.dll, which checks for:

    // See whether jp2ssv_patch.dll exists in this JRE
    _sntprintf_s(temp, BUFFER_SIZE, _TRUNCATE,
            _T("%s\\jp2ssv_patch.dll"), deployHomeBin);
    struct _stat s;
    if (_tstat(temp, &s) < 0) {
        // See whether jp2ssv.dll exists in this JRE
        _sntprintf_s(temp, BUFFER_SIZE, _TRUNCATE,
                _T("%s\\jp2ssv.dll"), deployHomeBin);

So in this patch in place case - we loaded jp2ssv_patch.dll.

Later in the jp2ssv code - it tries to locate it's own loaded module path, but it only checks jp2ssv, not jp2ssv_patch:

 if (GetLoadedModuleDirectory(_T("jp2ssv.dll"), FALSE, moduleDirPath,
            BUFFER_SIZE) == FALSE) {
        if (GetLoadedModuleDirectory(_T("ssv.dll"), FALSE, moduleDirPath,
                BUFFER_SIZE) == FALSE) {
            // should not happen
            return;
        }
    }

And that's why we simply returned, because only jp2ssv_patch.dll is loaded, and failed to continue to correctly get the latest JRE version and set the TreatAs key correctly.

                                     
2013-06-21



Hardware and Software, Engineered to Work Together