Bugs item #3151350, was opened at 2011-01-04 13:12
Message generated for change (Comment added) made by hansonr
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=379133&aid=3151350&group_id=23629

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Applet
Group: None
>Status: Closed
Resolution: None
Priority: 7
Private: No
Submitted By: Andrew Dunn (adunn8)
Assigned to: Bob Hanson (hansonr)
Summary: Applet not loading files after Java 6 update 22

Initial Comment:
We are having a problem with Jmol applet not being able to load new files via 
the javascript interface after the applet is instantiated.  The initial file is 
loads fine, but when we switch to another model (see link), we get a 
java.security.AccessControlException.  I have observed the issue only affects 
clients who are running Java 6 update 22 or higher.  It was working fine 
previous to this update.

Link to Jmol application (Protein Viewer):
http://elsevier-apps.sciverse.com/ProteinViewer/ProteinViewer.html?pii=S0022283610004328#

Steps to recreate (must have java 6 update 22 or higher installed):
1.) Access link above - Protein Viewer application will load the first 
structure in the film strip above (highlighted yellow)
2.) Click on any other structure in the filmstrip above the Jmol applet - The 
Jmol will try to load the structure's file for 10 seconds and then a custom 
error message will be displayed.  The file has failed to load.
3.) Check java console. - You should see a stack trace similar to the one 
attched.
4.) If desired, uninstall java and install an update 21 or earlier to see 
Protein Viewer functioning correctly


I have attached the Java console output.  Notice that the first file 
(2VOA.pdb.gz) loads fine, but the second produces an error.  Both use the same 
URI.

----------------------------------------------------------------------

>Comment By: Bob Hanson (hansonr)
Date: 2011-01-07 11:31

Message:
Great. Good luck! 

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2011-01-07 11:27

Message:
FYI ... we have confirmed its a network issue.  It seems that starting with
update 22, java has modified its security policy for applets so that  both
a regular DNS lookup (by host) and then a reverse DNS lookup (by IP) are
executed on http requests.  For what ever reason, we don't have a reverse
entry in our DNS which causes the socket permission error.  I've confirmed
this by modifying my local host file to proxy all requests to
apps-elsevier.sciverse.com and everything works.  Now its a matter of
getting the DNS entries made.

I guess from my perspective, you can go ahead and close this ticket. 
Thanks so much for your responsiveness and helping us out.  Give my regards
to the rest of your team as well.  What you guys do here is really
appreciated.  Jmol is a great product.  Keep up the good work!

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-01-05 19:01

Message:
And IP address lookup for elsevier-apps.sciverse.com gives 198.185.19.113,
but that address does not work in http://198.185.19.113. DId you recently
establish this domain name? If you know your real IP address, try using
that instead of the name so no name look-up is required.

----------------------------------------------------------------------

Comment By: Andrew Dunn (adunn8)
Date: 2011-01-05 17:51

Message:
Think I found something which may explain the issue with java version. 
This is from the update 22 release notes:

"The fix for CVE-2010-3560 could cause certain Java applets running in the
new Java Plug-in to stop working if they are embedded in web pages which
contain JavaScript that calls into Java in order to perform actions which
require network security permissions. These applets may fail with a network
security exception under some circumstances if the name service which
resolved the original web page URL host name does not return a matching
name as the result of a reverse address lookup. This is most likely to
occur for the new Java Plug-in running on Solaris and Linux when configured
to use NIS for host to network address resolution with maps containing host
names which are in short form (rather than as a fully qualified domain
name).
If an applet is suspected of failing due to this change you can verify
that by setting the logging level of the Java Console to 5 and looking for
logging strings beginning with "socket access restriction" ...."

http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html

Certainly sounds similar to the issue I'm facing, although I'm not seeing
the "socket access restriction" message.  Perhaps this is a related issue. 


----------------------------------------------------------------------

Comment By: Andrew Dunn (adunn8)
Date: 2011-01-05 14:05

Message:
I set up Apache's TCPMon
(http://ws.apache.org/commons/tcpmon/tcpmontutorial.html) to monitor the
http request/response traffic on my machine when using Protein Viewer. 
When I get the AccessControlException it doesn't look like the proxy
request is even being made, and I've confirmed that the server isn't
receiving the request either.  

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-01-04 18:38

Message:
OK, I've pinned the problem down to your server. I don't know what it is,
but something about that ProxyServlet call is what is doing it. This will
fail:

http://chemapps.stolaf.edu/jmol/docs/examples-12/t2.htm

It calls your site using your JAR file and reads the first file, but then,
as you say, the "test" link there fails to read that same file again. 

Here is the same thing, using St. Olaf site:

http://chemapps.stolaf.edu/jmol/docs/examples-12/t2.htm?STOLAF

Now clicking on "test" works. 

The only difference is the site -- yours versus mine. So I'm guessing it
does not have to do with Java version 22 (I'm using 23 here). You must have
also done something different in relation to that proxy server. 

----------------------------------------------------------------------

Comment By: Andrew Dunn (adunn8)
Date: 2011-01-04 16:12

Message:
Thanks for the quick response, Bob.

We are proxying the files from pdb.org, so they don't physically exist on
our server.  Sort of like the technique used by First Glance out lined
here: http://molvis.sdsc.edu/fgij/datameth.htm .  We don't use apache
re-write, but a servlet that repackages the response, so it should appear
to be coming from our server.  It has worked up until the latest java
updates came out.

We were originally thinking it had something to do with the network
plumbing, but we came to find that the file request was not even making it
to server, like it was stuck on the client.  What makes it even weirder is
the fact that we can load the first model (on jmol initialization), no
problem.  Its only when we try to change the model.   

I will try your directory suggestion to see, if that changes anything.

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-01-04 15:39

Message:
I've tested this now at
http://chemapps.stolaf.edu/jmol/docs/examples-11/new.htm
I think it's some sort of a proxy setting you might have on your server,
because this is not a problem here, and I am having the problem at your
server. So for example, at this site you can use

javascript:jmolScript("load ../../data/1crn.pdb")

That is, loading a file from a parallel set of directories from where
JmolApplet.jar is found. That's the proper behavior. So  what is different
about your server? Do you by any chance have some sort of settings that
would give a different IP address domain for the HTML file than for the
loading file? It's got to be something like that. 

Bob 

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-01-04 15:22

Message:
Right, so there appears to be a new security model there. It seems to me we
know about this... I'll have to do some looking. But the solution should be
to move JmolApplet.jar (or JmolApplet*.jar) to the directory containing or
above the directory containing the PDB files. Or switch to the signed
applet. 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=379133&aid=3151350&group_id=23629

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
Jmol-developers mailing list
Jmol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to