80
81 if (startName != null && parsed.startsWith(startName)) {
82 relStart = parsed.getSuffix(startName.size()).toString();
83 relHome = parsed.getSuffix(homeCtx.currentParsedDN.size()).toString();
84 } else {
85 relative = false;
86 relHome = relStart =
87 LdapURL.toUrlString(homeCtx.hostname, homeCtx.port_number,
88 dn, homeCtx.hasLdapsScheme);
89 }
90 } catch (NamingException e) {
91 // could not parse name
92 relative = false;
93 relHome = relStart =
94 LdapURL.toUrlString(homeCtx.hostname, homeCtx.port_number,
95 dn, homeCtx.hasLdapsScheme);
96 }
97
98 // Name relative to search context
99 CompositeName cn = new CompositeName();
100 if (!relStart.equals("")) {
101 cn.add(relStart);
102 }
103
104 // Name relative to homeCtx
105 CompositeName rcn = new CompositeName();
106 if (!relHome.equals("")) {
107 rcn.add(relHome);
108 }
109 //System.err.println("relStart: " + cn);
110 //System.err.println("relHome: " + rcn);
111
112 // Fix attributes to be able to get schema
113 homeCtx.setParents(attrs, rcn);
114
115 // only generate object when requested
116 if (searchArgs.cons.getReturningObjFlag()) {
117
118 if (attrs.get(Obj.JAVA_ATTRIBUTES[Obj.CLASSNAME]) != null) {
119 // Entry contains Java-object attributes (ser/ref object)
120 // serialized object or object reference
121 try {
122 obj = AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
123 @Override
124 public Object run() throws NamingException {
125 return Obj.decodeObject(attrs);
126 }
|
80
81 if (startName != null && parsed.startsWith(startName)) {
82 relStart = parsed.getSuffix(startName.size()).toString();
83 relHome = parsed.getSuffix(homeCtx.currentParsedDN.size()).toString();
84 } else {
85 relative = false;
86 relHome = relStart =
87 LdapURL.toUrlString(homeCtx.hostname, homeCtx.port_number,
88 dn, homeCtx.hasLdapsScheme);
89 }
90 } catch (NamingException e) {
91 // could not parse name
92 relative = false;
93 relHome = relStart =
94 LdapURL.toUrlString(homeCtx.hostname, homeCtx.port_number,
95 dn, homeCtx.hasLdapsScheme);
96 }
97
98 // Name relative to search context
99 CompositeName cn = new CompositeName();
100 if (!relStart.isEmpty()) {
101 cn.add(relStart);
102 }
103
104 // Name relative to homeCtx
105 CompositeName rcn = new CompositeName();
106 if (!relHome.isEmpty()) {
107 rcn.add(relHome);
108 }
109 //System.err.println("relStart: " + cn);
110 //System.err.println("relHome: " + rcn);
111
112 // Fix attributes to be able to get schema
113 homeCtx.setParents(attrs, rcn);
114
115 // only generate object when requested
116 if (searchArgs.cons.getReturningObjFlag()) {
117
118 if (attrs.get(Obj.JAVA_ATTRIBUTES[Obj.CLASSNAME]) != null) {
119 // Entry contains Java-object attributes (ser/ref object)
120 // serialized object or object reference
121 try {
122 obj = AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
123 @Override
124 public Object run() throws NamingException {
125 return Obj.decodeObject(attrs);
126 }
|