[
https://issues.apache.org/jira/browse/LUCENENET-357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12865069#action_12865069
]
Simone Chiaretta commented on LUCENENET-357:
--------------------------------------------
I saw the LOCK_DIR has already been removed in the trunk. but the problem with
System.Environment.GetEnvironmentVariable still exists.
Not really sure how a possible approach could be
/// <summary>The value of
<tt>System.getProperty("os.name")</tt>. *</summary>
public static readonly System.String OS_NAME =
System.Environment.GetEnvironmentVariable("OS") ?? "Linux";
/// <summary>True iff running on Linux. </summary>
public static readonly bool LINUX = OS_NAME.StartsWith("Linux");
/// <summary>True iff running on Windows. </summary>
public static readonly bool WINDOWS =
OS_NAME.StartsWith("Windows");
/// <summary>True iff running on SunOS. </summary>
public static readonly bool SUN_OS =
OS_NAME.StartsWith("SunOS");
public static readonly System.String OS_ARCH =
System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
public static readonly System.String OS_VERSION =
System.Environment.OSVersion.ToString();
public static readonly System.String JAVA_VENDOR =
SupportClass.AppSettings.Get("java.vendor", "");
OS_ARCH and OS_VERSION are used only for logging the config of the machine in
the error message... I think these can be removed
OS_NAME is only used indirectly with the WINDOWS flag in these two points in
the code:
public static FSDirectory Open(System.IO.DirectoryInfo path,
LockFactory lockFactory)
{
/* For testing:
MMapDirectory dir=new MMapDirectory(path, lockFactory);
dir.setUseUnmap(true);
return dir;
*/
if (Constants.WINDOWS)
{
return new SimpleFSDirectory(path, lockFactory);
}
else
{
//NIOFSDirectory is not implemented in Lucene.Net
//return new NIOFSDirectory(path, lockFactory);
return new SimpleFSDirectory(path, lockFactory);
}
}
Which in both branches does the exact same thing
and in
static IndexWriter()
{
DEFAULT_MERGE_FACTOR =
LogMergePolicy.DEFAULT_MERGE_FACTOR;
DEFAULT_MAX_MERGE_DOCS =
LogDocMergePolicy.DEFAULT_MAX_MERGE_DOCS;
MAX_TERM_LENGTH = DocumentsWriter.MAX_TERM_LENGTH;
{
if (Constants.WINDOWS)
DEFAULT_MAX_SYNC_PAUSE_SECONDS = 10.0;
else
DEFAULT_MAX_SYNC_PAUSE_SECONDS = 0.0;
}
}
I've no idea of why windows and other OSes might have different defaults...
So, just putting
public static readonly System.String OS_NAME = "Windows";
public static readonly System.String OS_ARCH = "x86";
public static readonly System.String OS_VERSION = String.Empty;
in the Constants.cs file will fix the problem with the only side effect of
always forcing DEFAULT_MAX_SYNC_PAUSE_SECONDS = 10.0;
Simo
> Lucene.Net in Medium Trust (Mostly won't work on shared hosts / Mosso cloud
> etc due to 'Trust' levels)
> ------------------------------------------------------------------------------------------------------
>
> Key: LUCENENET-357
> URL: https://issues.apache.org/jira/browse/LUCENENET-357
> Project: Lucene.Net
> Issue Type: Bug
> Environment: .NET 3.5 / Medium or Medium modified trust
> Reporter: Frank West
> Attachments: WeakKey.diff
>
>
> Initially I had to remove a few references to the Sys Environment to get it
> to work. However now it fails use of the 'Weak Hashtable' - any reference to
> a 'weak[something]' will fail with a security exception. The issue only
> happens when returning sorted results.
> As an example here's the web.config modified trust file I'm being forced to
> use on Mosso (Rackspace cloud)
> <configuration>
> <mscorlib>
> <security>
> <policy>
> <PolicyLevel version="1">
> <SecurityClasses>
> <SecurityClass Name="AllMembershipCondition"
> Description="System.Security.Policy.AllMembershipCondition, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="AspNetHostingPermission"
> Description="System.Web.AspNetHostingPermission, System, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="ConfigurationPermission"
> Description="System.Configuration.ConfigurationPermission,
> System.Configuration, Version=2.0.0.0, Culture=neutral,
> PublicKeyToken=b03f5f7f11d50a3a"/>
> <SecurityClass Name="DnsPermission"
> Description="System.Net.DnsPermission, System, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="EnvironmentPermission"
> Description="System.Security.Permissions.EnvironmentPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="FileIOPermission"
> Description="System.Security.Permissions.FileIOPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="FirstMatchCodeGroup"
> Description="System.Security.Policy.FirstMatchCodeGroup, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="IsolatedStorageFilePermission"
> Description="System.Security.Permissions.IsolatedStorageFilePermission,
> mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="NamedPermissionSet"
> Description="System.Security.NamedPermissionSet"/>
> <SecurityClass Name="PrintingPermission"
> Description="System.Drawing.Printing.PrintingPermission, System.Drawing,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
> <SecurityClass Name="SecurityPermission"
> Description="System.Security.Permissions.SecurityPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="SmtpPermission"
> Description="System.Net.Mail.SmtpPermission, System, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="SqlClientPermission"
> Description="System.Data.SqlClient.SqlClientPermission, System.Data,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="StrongNameMembershipCondition"
> Description="System.Security.Policy.StrongNameMembershipCondition, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="UIPermission"
> Description="System.Security.Permissions.UIPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="UnionCodeGroup"
> Description="System.Security.Policy.UnionCodeGroup, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="UrlMembershipCondition"
> Description="System.Security.Policy.UrlMembershipCondition, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="WebPermission"
> Description="System.Net.WebPermission, System, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="ZoneMembershipCondition"
> Description="System.Security.Policy.ZoneMembershipCondition, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="ReflectionPermission"
> Description="System.Security.Permissions.ReflectionPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="OleDbPermission"
> Description="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="OdbcPermission"
> Description="System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> <SecurityClass Name="SocketPermission"
> Description="System.Net.SocketPermission, System, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> </SecurityClasses>
> <NamedPermissionSets>
> <PermissionSet class="NamedPermissionSet" version="1"
> Unrestricted="true" Name="FullTrust" Description="Allows full access to all
> resources"/>
> <PermissionSet class="NamedPermissionSet" version="1"
> Name="Nothing" Description="Denies all resources, including the right to
> execute"/>
> <PermissionSet class="NamedPermissionSet" version="1"
> Name="ASP.Net">
> <IPermission class="AspNetHostingPermission" version="1"
> Level="Medium"/>
> <IPermission class="ConfigurationPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="DnsPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="EnvironmentPermission" version="1"
> Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME"/>
> <IPermission class="FileIOPermission" version="1"
> Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$"/>
> <IPermission class="IsolatedStorageFilePermission" version="1"
> Allowed="AssemblyIsolationByUser" UserQuota="9223372036854775807"/>
> <!-- <IPermission class="PrintingPermission" version="1"
> Level="DefaultPrinting"/> -->
> <IPermission class="SecurityPermission" version="1"
> Flags="Assertion, Execution, ControlThread, ControlPrincipal,
> RemotingConfiguration"/>
> <IPermission class="SmtpPermission" version="1"
> Access="ConnectToUnrestrictedPort"/>
> <IPermission class="SqlClientPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="WebPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="OleDbPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="OdbcPermission" version="1"
> Unrestricted="true"/>
> <IPermission class="SocketPermission" version="1"
> Unrestricted="true" />
> <IPermission class="ReflectionPermission" version="1"
> Unrestricted="true"/>
> </PermissionSet>
> </NamedPermissionSets>
> <CodeGroup class="FirstMatchCodeGroup" version="1"
> PermissionSetName="Nothing">
> <IMembershipCondition class="AllMembershipCondition" version="1"/>
> <CodeGroup class="UnionCodeGroup" version="1"
> PermissionSetName="ASP.Net">
> <IMembershipCondition class="UrlMembershipCondition"
> version="1" Url="$AppDirUrl$/*"/>
> </CodeGroup>
> <CodeGroup class="UnionCodeGroup" version="1"
> PermissionSetName="ASP.Net">
> <IMembershipCondition class="UrlMembershipCondition"
> version="1" Url="$CodeGen$/*"/>
> </CodeGroup>
> <CodeGroup class="UnionCodeGroup" version="1"
> PermissionSetName="Nothing">
> <IMembershipCondition class="ZoneMembershipCondition"
> version="1" Zone="MyComputer"/>
> <CodeGroup class="UnionCodeGroup" version="1"
> PermissionSetName="FullTrust" Name="Microsoft_Strong_Name" Description="This
> code group grants code signed with the Microsoft strong name full trust. ">
> <IMembershipCondition class="StrongNameMembershipCondition"
> version="1"
> PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"/>
> </CodeGroup>
> <CodeGroup class="UnionCodeGroup" version="1"
> PermissionSetName="FullTrust" Name="Ecma_Strong_Name" Description="This code
> group grants code signed with the ECMA strong name full trust. ">
> <IMembershipCondition class="StrongNameMembershipCondition"
> version="1" PublicKeyBlob="00000000000000000400000000000000"/>
> </CodeGroup>
> </CodeGroup>
> </CodeGroup>
> </PolicyLevel>
> </policy>
> </security>
> </mscorlib>
> </configuration>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.