in src/java/org/apache/fop/render/pdf/pdfbox/MergeCFFFonts.java [155:188]
public static List<Integer> getSids(CFFCharset cSet) {
List<Integer> sids = new ArrayList<Integer>();
try {
for (int gid = 0; gid < 1024; gid++) {
int sid = cSet.getCIDForGID(gid);
if (sid != 0) {
sids.add(sid);
}
}
} catch (IllegalStateException e) {
try {
final Method getSIDForGID = CFFCharset.class.getDeclaredMethod("getSIDForGID", int.class);
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
getSIDForGID.setAccessible(true);
return null;
}
});
for (int gid = 0; gid < 1024; gid++) {
int sid = (Integer)getSIDForGID.invoke(cSet, gid);
if (sid != 0) {
sids.add(sid);
}
}
} catch (NoSuchMethodException e1) {
throw new RuntimeException(e1);
} catch (InvocationTargetException e1) {
throw new RuntimeException(e1);
} catch (IllegalAccessException e1) {
throw new RuntimeException(e1);
}
}
return sids;
}