You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2012/07/14 13:26:56 UTC
svn commit: r1361523 - in /river/jtsk/trunk/src: com/sun/jini/fiddler/
net/jini/security/ org/apache/river/api/security/
Author: peter_firmstone
Date: Sat Jul 14 11:26:55 2012
New Revision: 1361523
URL: http://svn.apache.org/viewvc?rev=1361523&view=rev
Log:
Revert one Thread.yield() call in FiddlerImpl
Fix URI issues with URIGrant on MS Windows platforms by cleaning up URI strings prior to instantiation and adding leading forward slashes missing from file path strings.
Modified:
river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java
river/jtsk/trunk/src/net/jini/security/GrantPermission.java
river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyParser.java
river/jtsk/trunk/src/org/apache/river/api/security/URIGrant.java
river/jtsk/trunk/src/org/apache/river/api/security/UriString.java
Modified: river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java?rev=1361523&r1=1361522&r2=1361523&view=diff
==============================================================================
--- river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java (original)
+++ river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java Sat Jul 14 11:26:55 2012
@@ -2430,13 +2430,7 @@ class FiddlerImpl implements ServerProxy
/* Unexport only if there are no pending or in-progress calls*/
while(!unexported && (System.currentTimeMillis() < endTime)) {
unexported = serverExporter.unexport(false);
- if(!unexported) try {
- // Thread.yield();
- Thread.sleep(MAX_UNEXPORT_DELAY / 4);
- } catch (InterruptedException ex) {
- // Reset the interrupt
- Thread.currentThread().interrupt();
- }
+ if(!unexported) Thread.yield();
}//end loop
if(!unexported) {//Not yet unexported. Forcibly unexport
serverExporter.unexport(true);
Modified: river/jtsk/trunk/src/net/jini/security/GrantPermission.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/net/jini/security/GrantPermission.java?rev=1361523&r1=1361522&r2=1361523&view=diff
==============================================================================
--- river/jtsk/trunk/src/net/jini/security/GrantPermission.java (original)
+++ river/jtsk/trunk/src/net/jini/security/GrantPermission.java Sat Jul 14 11:26:55 2012
@@ -792,7 +792,7 @@ public final class GrantPermission exten
public synchronized boolean implies(Permission p) {
return implier.implies(p);
- }
+ }
public synchronized void setReadOnly() {
super.setReadOnly();
Modified: river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyParser.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyParser.java?rev=1361523&r1=1361522&r2=1361523&view=diff
==============================================================================
--- river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyParser.java (original)
+++ river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyParser.java Sat Jul 14 11:26:55 2012
@@ -267,7 +267,7 @@ class DefaultPolicyParser implements Pol
Segment segment(String s, Properties p) throws ExpansionFailedException{
final String ARRAY_START_MARK = "${{";
final String ARRAY_END_MARK = "}}";
- final String ARRAY_SEPARATOR = ":";
+ final String ARRAY_SEPARATOR = p.getProperty("path.separator");
final String START_MARK = "${"; //$NON-NLS-1$
final String END_MARK = "}"; //$NON-NLS-1$
Segment primary = new Segment(s, null);
Modified: river/jtsk/trunk/src/org/apache/river/api/security/URIGrant.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/URIGrant.java?rev=1361523&r1=1361522&r2=1361523&view=diff
==============================================================================
--- river/jtsk/trunk/src/org/apache/river/api/security/URIGrant.java (original)
+++ river/jtsk/trunk/src/org/apache/river/api/security/URIGrant.java Sat Jul 14 11:26:55 2012
@@ -199,7 +199,7 @@ class URIGrant extends CertificateGrant
* @return {@code true} if the argument code source is implied by this
* {@code CodeSource}, otherwise {@code false}.
*/
- private static boolean implies(URI grant, URI implied) {
+ private final boolean implies(URI grant, URI implied) {
//
// Here, javadoc:N refers to the appropriate item in the API spec for
// the CodeSource.implies()
Modified: river/jtsk/trunk/src/org/apache/river/api/security/UriString.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/UriString.java?rev=1361523&r1=1361522&r2=1361523&view=diff
==============================================================================
--- river/jtsk/trunk/src/org/apache/river/api/security/UriString.java (original)
+++ river/jtsk/trunk/src/org/apache/river/api/security/UriString.java Sat Jul 14 11:26:55 2012
@@ -17,6 +17,7 @@
package org.apache.river.api.security;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
@@ -30,11 +31,12 @@ import java.util.Map;
class UriString {
private final static Map<Character,String> escaped = new HashMap<Character,String>();
-
+ private final static Collection<Character> alpha;
// Allowed
- private static char [] lowalpha = "abcdefghijklmnopqrstuvwxyz".toCharArray();
- private static char [] upalpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
+ private static final char [] lowalpha = "abcdefghijklmnopqrstuvwxyz".toCharArray();
+ private static final char [] upalpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
+ private static char [] numeric = "0123456789".toCharArray();
private static char [] reserved = {';','/','?',':','@','&','=','+','$',','};
private static char [] mark = "-_.!~*'()".toCharArray();
private static char escape = '%';
@@ -71,6 +73,9 @@ class UriString {
escaped.put(space, spaceEsc);
escapes(delims, delimEsc);
escapes(unwise, unwiseEsc);
+ alpha = new ArrayList<Character>(lowalpha.length + upalpha.length);
+ addArrayToCollection(alpha, lowalpha);
+ addArrayToCollection(alpha, upalpha);
}
static void escapes(Character [] unicode, String[] escape){
@@ -81,15 +86,25 @@ class UriString {
}
}
+ static void addArrayToCollection(Collection<Character> col, char [] chars){
+ int l = chars.length;
+ for ( int i = 0; i < l; i++){
+ col.add(chars[i]);
+ }
+ }
+
static String escapeIllegalCharacters(String url){
+ boolean isFile = url.startsWith("file:");
char [] u = url.toCharArray();
int l = u.length;
-// for (int i = 0; i < l; i++){
-// // Don't escape if already escaped.
-// if (u[i] == escape) return url;
-// }
StringBuilder sb = new StringBuilder();
for (int i=0; i<l; i++){
+ if (isFile && i == 5 && url.startsWith(":", 6 )) {
+ //Windows drive letter without leading slashes.
+ if ( alpha.contains(u[i])){
+ sb.append("///");
+ }
+ }
Character c = Character.valueOf(u[i]);
if (escaped.keySet().contains(c)){
sb.append(escaped.get(c));