You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Owen O'Malley (JIRA)" <ji...@apache.org> on 2006/09/13 05:54:23 UTC

[jira] Resolved: (HADOOP-104) Reflexive access to non-public class with public ctor requires setAccessible (with some JVMs)

     [ http://issues.apache.org/jira/browse/HADOOP-104?page=all ]

Owen O'Malley resolved HADOOP-104.
----------------------------------

    Fix Version/s: 0.5.0
       Resolution: Duplicate
         Assignee: Hairong Kuang

> Reflexive access to non-public class with public ctor requires setAccessible (with some JVMs)
> ---------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-104
>                 URL: http://issues.apache.org/jira/browse/HADOOP-104
>             Project: Hadoop
>          Issue Type: Bug
>            Reporter: Michel Tourn
>         Assigned To: Hairong Kuang
>             Fix For: 0.5.0
>
>         Attachments: setaccessible.patch
>
>
> Multiple times I have hit this problem which prevents the NameNode from starting.
> The only fix I had so far was to loose all my DFS data...
> Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalAccessException: 
> Class org.apache.hadoop.io.WritableFactories can not access a member of 
> class org.apache.hadoop.dfs.Block with modifiers "public"
>         at org.apache.hadoop.io.WritableFactories.newInstance(WritableFactories.java:49)
>         at org.apache.hadoop.io.ArrayWritable.readFields(ArrayWritable.java:81)
>         at org.apache.hadoop.dfs.FSDirectory.loadFSEdits(FSDirectory.java:374)
>         at org.apache.hadoop.dfs.FSDirectory.loadFSImage(FSDirectory.java:347)
>         at org.apache.hadoop.dfs.FSDirectory.<init>(FSDirectory.java:258)
>         at org.apache.hadoop.dfs.FSNamesystem.<init>(FSNamesystem.java:151)
>         at org.apache.hadoop.dfs.NameNode.<init>(NameNode.java:82)
> According to this, 
> http://forum.java.sun.com/thread.jspa?threadID=704100&messageID=4082902
> this is a known issue when using
> reflexive access to a non-public class with public ctor 
> (class org.apache.hadoop.dfs.Block is such a class)
> This problem may not occur with all JVM releases. 
> (I build on 1.5.0-b64 and run on 1.5.0_05-b05)
> This problem only occured for me when 
> I upgrade code or change XML configuration AND 
> have existing files in the DFS.
> This problem does not occur when I just stop / restart the NameServer.
> In any case, the attached patch fixes it by calling setAccessible
> before constructing the instance with reflection.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira