[ 
http://issues.apache.org/jira/browse/HADOOP-217?page=comments#action_12414274 ] 

Hairong Kuang commented on HADOOP-217:
--------------------------------------

The exception occurs when we restart dfs after the namenode is reformated. The 
namenode starts as an empty file system so the Block class is loaded. When the 
name node receives block reports containing blocks from the previous file 
system, it throws the exception.

To avoid this, we can either make the Block class public or explicitly load the 
class in NameNode.

> IllegalAcessException when creating a Block object via WritableFactories
> ------------------------------------------------------------------------
>
>          Key: HADOOP-217
>          URL: http://issues.apache.org/jira/browse/HADOOP-217
>      Project: Hadoop
>         Type: Bug

>   Components: dfs
>     Versions: 0.3
>     Reporter: Hairong Kuang
>     Assignee: Hairong Kuang
>      Fix For: 0.4
>  Attachments: access.patch
>
> When I ran the dfs namenode, I received an error message listed below. 
> Changing Block class to be public will be able to fix the problem.
> 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"
> 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.ObjectWritable.readObject(ObjectWritable.java:226)
>         at 
> org.apache.hadoop.io.ObjectWritable.readObject(ObjectWritable.java:163)
>         at 
> org.apache.hadoop.io.ObjectWritable.readObject(ObjectWritable.java:211)
>         at org.apache.hadoop.ipc.RPC$Invocation.readFields(RPC.java:88)
>         at org.apache.hadoop.ipc.Server$Connection.run(Server.java:154)
> Caused by: 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 sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
>         at java.lang.Class.newInstance0(Class.java:344)
>         at java.lang.Class.newInstance(Class.java:303)
>         at 
> org.apache.hadoop.io.WritableFactories.newInstance(WritableFactories.java:45)
>         ... 5 more

-- 
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

Reply via email to