| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
performance for single applet reload.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getInstance(): No new JNLPClassLoader if uniqueKey satisfies
JNLPClassLoader.[get|create]Instance(..):
- Reuse uniqueKey, baseLoader from getInstance()
- Remove extLoader (same as baseLoader)
This is odd and sparked my eye while reusing the baseLoader (above).
JNLPClassLoader.getInstance(..):
- No new JNLPClassLoader if uniqueKey satisfies.
Why should we ? Enables reusing CL and impacts performance.
JNLPClassLoader.toString(): Added for better debugging.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The OpenJDK8 javadoc parser is much more strict and raises
erorrs on marlformed html, incorrect parameter names and
incorrect throws declerations.
2014-01-23 Omair Majid <[email protected]>
* netx/net/sourceforge/jnlp/JNLPFile.java,
* netx/net/sourceforge/jnlp/NetxPanel.java,
* netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java,
* netx/net/sourceforge/jnlp/cache/CacheUtil.java,
* netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java,
* netx/net/sourceforge/jnlp/config/DirectoryValidator.java,
* netx/net/sourceforge/jnlp/config/Setting.java,
* netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java,
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java,
* netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java,
* netx/net/sourceforge/jnlp/runtime/RhinoBasedPacEvaluator.java,
* netx/net/sourceforge/jnlp/security/SecurityDialogs.java,
* netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java,
* netx/net/sourceforge/jnlp/services/XSingleInstanceService.java,
* netx/net/sourceforge/jnlp/util/FileUtils.java,
* netx/net/sourceforge/jnlp/util/JarFile.java,
* netx/net/sourceforge/nanoxml/XMLElement.java,
* netx/net/sourceforge/nanoxml/XMLParseException.java,
* plugin/icedteanp/java/sun/applet/PluginStreamHandler.java: Fix incorrect
parameter names, throws declerations and malformed html in javadocs.
|
|
|
|
|
|
|
|
|
|
| |
Resolve deadlock issue in JNLPClassLoader. See
http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-December/025546.html
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (loadClassLock)
removed. (available, jarIndexes, classpaths, jarEntries, jarLocationSecurityMap)
fields wrapped in Collections.synchronized*() to provide atomic read/write.
Synchronized on while iterating over these collections. (loadClass) no longer
uses implicit JNLPClassLoader instance lock nor dedicated loadClassLock object.
|
|
|
|
|
|
| |
Fix/new feature for PR1592. Each JAR in partially signed applets is
assigned its own security level, rather than forcing the entire applet to
run sandboxed.
|
|
|
|
|
|
|
|
| |
manifest
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) added check fo null manifest to prevent npe.
* /tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: added test for npe from getManifestAttribute
* tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java: (createJarWithContents) enhanced to be able to create jar without manifest.
|
| |
|
|
|
|
|
|
| |
Iteration over Enumerations refactored to instead view Enumerations as Lists
using Collections library. Type parameters added to some local variables and
return types. For-loops refactored into for-each-loops.
|
|
|
|
| |
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name
|
|
|
|
| |
netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java.
|
|
|
|
|
|
| |
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java:
(initializeResources) ask for user approval rather than throwing
LaunchException for signed applets with external main-class
|
|
|
|
|
|
|
|
|
|
| |
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java:
(getMainClassName) is now calling (getManifestAttribute)
(getManifestAttribute) new method, extract named attribute from url
specified jar. Called by (checkForAttributeInJars)
(checkForMain) is now calling (checkForAttributeInJars). Also logic of
(checkForAttributeInJars) was taken from here.
(checkForAttributeInJars) new method, read specific attribute from
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New lock used for synchronizing JNLPClassLoader#loadClass(String) to avoid
deadlock condition when multiple applets are being loaded simultaneously.
Regression test included.
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (loadClassLock)
private member for locking of loadClass method. (loadClass) synchronizes
using new lock rather than instance intrinsic lock to avoid RH976833
deadlock
* tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java:
new test for multiple applet deadlock condition
* tests/reproducers/custom/JNLPClassLoaderDeadlock/resources/JNLPClassLoaderDeadlock.html:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/Makefile: same
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Treat jnlp.packEnabled and jnlp.versionEnabled just like other
properties that can be set in one resource element and
inherited/filtered in others.
2013-09-09 Omair Majid <[email protected]>
* netx/net/sourceforge/jnlp/JNLPFile.java
(getDownloadOptionsForJar): Rename to ...
(getDownloadOptions): New method. Look up jnlp.packEnabled and
jnlp.versionEnabled in any resources element.
* netx/net/sourceforge/jnlp/PluginBridge.java
(getDownloadOptionsForJar): Rename to ...
(getDownloadOptions): New method.
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
(initializeResources): Invoke file.getDownloadResources.
(getDownloadOptionsForJar): Remove.
* tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java
(testDownloadOptionsAppliedEverywhere): New method.
(testDownloadOptionsFilteredOut): New method.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This is a long-planned rework of JarCertVerifier, allowing it to handle
multiple certificates. The algorithms used to verify jars with multiple
certificates vary between JNLPs and Applets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is possible for the ClassLoader to encounter a ClassCircularityError.
This can happen when the ClassLoader detects that checking if a class
'A' has been loaded triggers another check of whether 'A' has been
loaded before the first check has completed. This can happen easily when
trying to load Policy or Permission classes, which lie in our code path
that checks whether a class has been loaded.
One possible fix is to ensure these classes are not in the path of code
that gets executed when we are trying to check for a class. This can be
done by removing the call to getAccessControlContextForClassLoading. The
javadocs for ClassLoader.findLoadedClass do not mention any
permissions required to call the method nor do they mention that the
method can throw a SecurityException. The native code that implements
findLoadedClass does not have any security checks either. The
doProvileged block is probably not needed here and removing it breaks
the circularity.
|
|
|
|
| |
outside jar
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* netx/net/sourceforge/jnlp/NullJnlpFileException.java: new class to
distinguish plain NPE from null jnlp file.
* netx/net/sourceforge/jnlp/SecurityDesc.java: (getSandBoxPermissions)
added throw of NullJnlpFileException in case of null jnlp file.
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (findClass)
added Override annotation, add catch of NullJnlpFileException and
re-throw of CNF exception.
* tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java:
(testResourceLoadSuccessCaching) (testResourceLoadFailureCaching)
(testParentClassLoaderIsAskedForClasses) - internal JNLPFile's
(getSecurity) null in SecurityDesc constructorrepalced by this.
(testNullFileSecurityDesc) new test to ensure NPE in null JNLPFile case.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
icedtea-web now skips over any jars that are corrupt or not actually jars.
This is how the proprietary plugin treats this situation.
|
|
|
|
| |
extensions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug manifests when the following sequence of steps happen:
1. An applet with both a codebase and a jar (archive) is loaded
2. A class Foo is loaded using the codebase classloader
3. The Foo class tries to load a class Bar that is specified in the jar
archive. The Bar class is not found.
The following applet reproduces the problem:
http://javadjvu.foxtrottechnologies.com/cgi-bin/djvuapplet.pl/examples/deer.djvu?zoom=page
The fix addresses the problem by ensuring that the codebase classloader
asks the classloader that knows about the jar archive to resolve
classes too.
|
|
|
|
|
| |
Previously folders in the archive tag were treated as jars.
They are now correctly treated as resource folders.
|
| |
|
| |
|
|
|
|
| |
hosting server
|
|
|
|
| |
New rethrow of exceptions and following condition make more accurate
|