Author: peter_firmstone Date: Tue Jul 10 09:54:01 2012 New Revision: 1359548
URL: http://svn.apache.org/viewvc?rev=1359548&view=rev Log: URI spaces in codebase strings caused problems with Windows platforms - fixed. Removed calls to Thread.yield(). Modified: river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/SelectionManager.java river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyScanner.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=1359548&r1=1359547&r2=1359548&view=diff ============================================================================== --- river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java (original) +++ river/jtsk/trunk/src/com/sun/jini/fiddler/FiddlerImpl.java Tue Jul 10 09:54:01 2012 @@ -2430,7 +2430,13 @@ 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) Thread.yield(); + if(!unexported) try { + // Thread.yield(); + Thread.sleep(MAX_UNEXPORT_DELAY / 4); + } catch (InterruptedException ex) { + // Reset the interrupt + Thread.currentThread().interrupt(); + } }//end loop if(!unexported) {//Not yet unexported. Forcibly unexport serverExporter.unexport(true); @@ -2445,7 +2451,11 @@ class FiddlerImpl implements ServerProxy try { leaseExpireThread.join(); if(log != null) snapshotThread.join(); - } catch (InterruptedException e) { } + } catch (InterruptedException e) { + // Should the interrupt really be swallowed? Or should we reset + // the status for later handling? + Thread.currentThread().interrupt(); + } if(log != null) log.deletePersistentStore(); if (activationID != null) { /* Inform the activation system that the object corresponding Modified: river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/SelectionManager.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/SelectionManager.java?rev=1359548&r1=1359547&r2=1359548&view=diff ============================================================================== --- river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/SelectionManager.java (original) +++ river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/SelectionManager.java Tue Jul 10 09:54:01 2012 @@ -368,7 +368,8 @@ public final class SelectionManager { } catch (Error e) { String message = e.getMessage(); if (message != null && message.startsWith("POLLNVAL")) { - Thread.yield(); +// Thread.yield(); + Thread.sleep(100L); continue; // work around 4458268 } else { throw e; Modified: river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java?rev=1359548&r1=1359547&r2=1359548&view=diff ============================================================================== --- river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java (original) +++ river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java Tue Jul 10 09:54:01 2012 @@ -993,6 +993,8 @@ abstract class NormServerBaseImpl continue; // go back to top of loop } catch (InterruptedException e) { // someone wants us dead + // Reset the interrupt + Thread.currentThread().interrupt(); return; } } else { @@ -1041,9 +1043,16 @@ abstract class NormServerBaseImpl } finally { store.releaseMutatorLock(); } - - // Give other threads a chance to run - Thread.yield(); + try { + // Give other threads a chance to run + long expires = set.getExpiration() - System.currentTimeMillis(); + // Thread sleep time decreases as it approaches the lease expiration. + Thread.sleep(expires / 2); + // Thread.yield(); + } catch (InterruptedException ex) { + // Reset the interrupt status. + Thread.currentThread().interrupt(); + } } catch (RuntimeException e) { logger.log( Level.INFO, @@ -1606,7 +1615,15 @@ abstract class NormServerBaseImpl logger.log(Level.FINEST, "...rslt = " + unexported); if (!unexported) { - Thread.yield(); + // Thread.yield(); + try { + // Sleep time decreases as we approach the max delay + // and retries increase. + Thread.sleep((end_time - System.currentTimeMillis())/2); + } catch (InterruptedException e){ + // Reset interrupt status + Thread.currentThread().interrupt(); + } } } } catch (NoSuchObjectException e) { Modified: river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyScanner.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyScanner.java?rev=1359548&r1=1359547&r2=1359548&view=diff ============================================================================== --- river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyScanner.java (original) +++ river/jtsk/trunk/src/org/apache/river/api/security/DefaultPolicyScanner.java Tue Jul 10 09:54:01 2012 @@ -496,7 +496,8 @@ class DefaultPolicyScanner { Collection<PrincipalEntry> pe, Collection<PermissionEntry> perms){ this.signers = signers; - this.codebase = codebase; + // Spaces are an illegal character in URI, so get rid of them now. + this.codebase = codebase.replace(" ", "%20"); this.principals = pe; this.permissions = perms; }
