aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
Commit message (Collapse)AuthorAgeFilesLines
* JNLPClassLoader.toString: Use hex value of object hashCode()HEADmasterSven Gothel2014-01-311-1/+1
|
* JNLPClassLoader: Introduce pending removal of cached CLs (1 min) to enhance ↵Sven Gothel2014-01-311-5/+47
| | | | performance for single applet reload.
* JNLPClassLoader: Formatting .. and user final qualifierSven Gothel2014-01-311-5/+5
|
* JNLPClassLoader.createInstance(): Remove extLoader (same as baseLoader); ↵Sven Gothel2014-01-311-18/+45
| | | | | | | | | | | | | | | | 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.
* JNLPClassLoader: Formatting final, override, spaceSven Gothel2014-01-311-79/+88
|
* Support building against OpenJDK8Omair Majid2014-01-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix classloading deadlock regressionAndrew Azores2013-12-271-75/+115
| | | | | | | | | | 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.
* Implement per-JAR security descriptors (PR1592)Andrew Azores2013-12-031-48/+80
| | | | | | 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.
* Added null check when getting manifest attributes for case of jar without ↵Jiri Vanek2013-11-271-2/+6
| | | | | | | | 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.
* Fixed NPE in getting the attributeJiri Vanek2013-11-141-0/+4
|
* JNLPClassLoader cleanup, avoid Enumerations and use strict typing.Andrew Azores2013-11-131-77/+54
| | | | | | 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.
* Enabled access to manifests' attributes from JNLPFile class, implemented ↵Jiri Vanek2013-11-131-9/+18
| | | | http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name
* Removed suspicious return when (searchForMain) had null launchDesc in ↵Jiri Vanek2013-11-101-4/+2
| | | | netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java.
* Fix PR1513, signed applets with external main-class supportAndrew Azores2013-10-291-15/+8
| | | | | | * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources) ask for user approval rather than throwing LaunchException for signed applets with external main-class
* Logic to extract main class attribute generalized to common methods.Jiri Vanek2013-10-211-32/+59
| | | | | | | | | | * 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
* Resolve multiple-applet deadlock issue in JNLPClassLoaderAndrew Azores2013-10-161-62/+73
| | | | | | | | | | | | | | | | | | | | 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
* Introduced logging bottleneckJiri Vanek2013-09-251-78/+43
|
* PR1533: Inherit jnlp.packEnabled and jnlp.versionEnabled like other propertiesOmair Majid2013-09-091-5/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* Added tagsup (optional dependence) as sanitizer for (possibly) invalid xml filesJiri Vanek2013-06-211-3/+4
|
* Extract NativeLibraryStorage class from JNLPClassLoaderAdam Domurad2013-06-031-126/+13
|
* Ensure JarFile handles do not leak.Adam Domurad2013-04-231-1/+10
|
* JNLPClassLoader unit tests for file leaksAdam Domurad2013-04-231-3/+3
|
* Fixed gifar vulnereability with automated testcaseJiri Vanek2013-04-171-2/+2
|
* Integration of unsigned applet confirmation dialogue.Adam Domurad2013-03-261-5/+12
|
* Print stacktrace for ClassFormatError's during classloadingAdam Domurad2013-03-221-0/+1
|
* Move stream closing utility in JNLPClassLoader to StreamUtilsAdam Domurad2013-03-051-18/+5
|
* Extract JNLPClassLoader initialization logic into createInstance() methodAdam Domurad2013-02-251-21/+38
|
* Avoid potential NPE on shutdown.Adam Domurad2013-02-211-1/+1
|
* Fix PR580: http://www.horaoficial.cl/ loads improperly.Adam Domurad2013-02-131-31/+62
|
* Fix CodeBaseClassLoaderTest.testParentClassLoaderIsAskedForClassesApplicationAdam Domurad2013-01-031-3/+8
|
* Add DownloadService implementationSaad Mohammad2012-11-081-1/+119
|
* New message for when JNLP is fully signed by different certsAdam Domurad2012-10-191-1/+5
|
* Major rework of JarCertVerifier certificate management.Danesh Dadachanji2012-10-221-83/+52
| | | | | | 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.
* PR1145: IcedTea-Web can cause ClassCircularityErrorOmair Majid2012-10-051-13/+1
| | | | | | | | | | | | | | | | | | | 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.
* Fix for PR920: Classes attempted to load twice when class extends from ↵Adam Domurad2012-08-281-15/+2
| | | | outside jar
* Fir regression that sometimes results in ClassCircularityErrorDeepak Bhole2012-08-271-0/+2
|
* Fixed long term failing unit-test, fixed NPE from ClassLoaderJiri Vanek2012-08-271-2/+9
| | | | | | | | | | | | | | | * 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.
* Fix some javadoc warningsThomas Meyer2012-08-191-1/+2
|
* Restrict manifest classpath searching for JNLPs.Danesh Dadachanji2012-08-151-1/+5
|
* Fix PR1049: Empty jars are handled correctly during signature validationSaad Mohammad2012-08-011-1/+1
|
* Refactor Object launchType; to LaunchDesc launchType; in JNLPFileAdam Domurad2012-07-101-11/+8
|
* Minor cleanup that removes avoidable code from loop.Saad Mohammad2012-07-091-13/+12
|
* Applet-tags now ignore any invalid (eg corrupt) jarsAdam Domurad2012-07-091-2/+62
| | | | | icedtea-web now skips over any jars that are corrupt or not actually jars. This is how the proprietary plugin treats this situation.
* Fix PR1040, PR1041, PR1042: Allows signed jars to function correctly using ↵Saad Mohammad2012-07-031-19/+104
| | | | extensions
* Fix problem in resolving classesOmair Majid2012-06-281-2/+14
| | | | | | | | | | | | | | | | | 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.
* Fixes PR1011 w/ reproducer, folders now allowed in archive tag.Adam Domurad2012-06-281-0/+13
| | | | | Previously folders in the archive tag were treated as jars. They are now correctly treated as resource folders.
* Last hope for not downloaded resources to be verifiedJiri Vanek2012-06-261-1/+20
|
* Fixed bug in previous commit for PR861Deepak Bhole2012-06-071-4/+6
|
* PR861: Allow loading from non codebase hosts. Allow code to connect to ↵Deepak Bhole2012-06-051-16/+133
| | | | hosting server
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getPermissions): ↵Jiri Vanek2012-05-291-14/+18
| | | | New rethrow of exceptions and following condition make more accurate